ਕੰਪਿਊਟਰ ', ਪ੍ਰੋਗਰਾਮਿੰਗ
ਬਾਈਨਰੀ ਖੋਜ - ਆਸਾਨ ਤਰੀਕੇ ਦੇ ਇੱਕ ਇੱਕ ਐਰੇ ਵਿੱਚ ਇੱਕ ਤੱਤ ਦਾ ਪਤਾ ਕਰਨ ਲਈ
ਅਕਸਰ ਪ੍ਰੋਗਰਾਮਰ, ਵੀ ਸ਼ੁਰੂਆਤ ਹੈ, ਅਸਲ ਨੰਬਰ ਦੀ ਇੱਕ ਸਮੂਹ ਹੈ, ਜੋ ਕਿ ਇੱਕ ਖਾਸ ਨੰਬਰ ਪਤਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਹੈ, ਜੋ ਕਿ ਨਾਲ ਦਾ ਸਾਹਮਣਾ. ਇਹ ਇਸ ਨੂੰ ਭੰਡਾਰ ਇੱਕ ਐਰੇ ਕਿਹਾ ਗਿਆ ਹੈ. ਅਤੇ ਇਸ ਵਿੱਚ ਇਕਾਈ ਦਾ ਪਤਾ ਕਰਨ ਲਈ, ਉੱਥੇ ਤਰੀਕੇ ਦੇ ਇੱਕ ਬੇਸ਼ੁਮਾਰ ਹਨ. ਪਰ ਸਭ ਸਧਾਰਨ ਸੱਜੇ ਤੇ ਇੱਕ ਬਾਈਨਰੀ ਖੋਜ ਮੰਨਿਆ ਜਾ ਸਕਦਾ ਹੈ. ਕੀ ਇਹ ਢੰਗ ਹੈ? ਅਤੇ ਕਿਸ ਬਾਈਨਰੀ ਖੋਜ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ? ਪਾਸਕਲ ਅਜਿਹੇ ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਦੇ ਸੰਗਠਨ ਲਈ ਸੌਖਾ ਵਾਤਾਵਰਣ ਨੂੰ ਹੈ, ਇਸ ਲਈ ਸਾਨੂੰ ਇਸ ਨੂੰ ਵਰਤਣ ਹੋਵੋਗੇ ਦਾ ਅਧਿਐਨ ਕਰਨ ਲਈ.
ਪਹਿਲੀ, ਵਿਸ਼ਲੇਸ਼ਣ, ਇਸ ਢੰਗ ਦੇ ਕੀ ਫਾਇਦੇ ਹਨ, ਇਸ ਨੂੰ ਹੈ, ਇਸ ਲਈ ਸਾਨੂੰ ਸਮਝ ਸਕਦਾ ਹੈ,
ਇਸ ਲਈ, ਇਸ ਢੰਗ ਦੇ ਕੰਮ ਦਾ ਅਸੂਲ ਕੀ ਹੈ? ਤੁਰੰਤ ਇਸ ਨੂੰ ਕਹਿਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਬਾਇਨਰੀ ਖੋਜ ਕੰਮ ਕਰਦਾ ਹੈ, ਕਿਸੇ ਵੀ ਐਰੇ ਵਿੱਚ ਨਹੀ ਹੈ, ਪਰ ਸਿਰਫ ਨੰਬਰ ਦੀ ਇੱਕ ਕ੍ਰਮਬੱਧ ਸੈੱਟ 'ਤੇ. ਹਰ ਕਦਮ ਲਿਆ ਐਰੇ ਦੇ ਮੱਧ ਤੱਤ 'ਤੇ (ਤੱਤ ਦੀ ਗਿਣਤੀ ਦਾ ਮਤਲਬ ਹੈ). ਦੀ ਲੋੜ ਹੈ, ਜੇ ਗਿਣਤੀ ਵੱਧ ਵੱਡਾ ਹੈ ਔਸਤ ਹੈ, ਫਿਰ ਸਭ ਨੂੰ, ਜੋ ਛੱਡ ਦਿੱਤਾ ਗਿਆ ਹੈ, ਜੋ ਕਿ ਔਸਤ ਸੈੱਲ ਵੱਧ ਘੱਟ ਹੈ, ਨੂੰ ਰੱਦ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਉੱਥੇ ਨਾ ਦੇਖਣ. ਇਸ ਦੇ ਉਲਟ, ਜੇ ਔਸਤ ਦੇ ਮੁਕਾਬਲੇ ਘੱਟ ਹੈ - ਸੱਜੇ ਜਿਹੜੇ ਨੰਬਰ ਆਪਸ ਵਿੱਚ, ਤੁਹਾਨੂੰ ਖੋਜ ਨਹੀ ਕਰ ਸਕਦਾ ਹੈ. ਫਿਰ ਜਿੱਥੇ ਪਹਿਲੀ ਇਕਾਈ ਨੂੰ ਪੂਰਾ ਐਰੇ ਦੇ ਮੱਧ ਤੱਤ ਹੈ, ਅਤੇ ਪਿਛਲੇ ਅਤੇ ਪਿਛਲੇ ਹੋ ਜਾਵੇਗਾ ਇੱਕ ਨਵ ਖੋਜ ਖੇਤਰ, ਦੀ ਚੋਣ ਕਰੋ. ਨਵ ਖੇਤਰ ਦੀ ਔਸਤ ਗਿਣਤੀ ਦੇ ਸਾਰੇ ਹਿੱਸੇ, ਹੈ, ਜੋ ਕਿ, (ਪਿਛਲੇ ਤੱਤ + ਪੂਰਾ ਐਰੇ ਦੇ ਮੱਧ ਤੱਤ) / 2 ਦੇ ਸਵਾ ਹੋ ਜਾਵੇਗਾ. ਫੇਰ, ਉਸੇ ਹੀ ਕਾਰਵਾਈ ਕੀਤੀ ਹੈ - ਐਰੇ ਦੀ ਔਸਤ ਗਿਣਤੀ ਨਾਲ ਤੁਲਨਾ. ਜੇ ਟੀਚੇ ਦਾ ਮੁੱਲ ਔਸਤ ਦੇ ਮੁਕਾਬਲੇ ਘੱਟ ਹੈ, ਸਾਨੂੰ ਦੇ ਸੱਜੇ ਪਾਸੇ ਨੂੰ ਰੱਦ, ਅਤੇ ਇਹ ਵੀ ਹੈ, ਜਦ ਤੱਕ ਹੁਣ ਇਸ ਨੂੰ ਮੱਧ ਤੱਤ ਲੋੜੀਦੀ ਹੈ, ਨਾ ਹੋਵੇਗਾ ਅਗਲੇ ਨੂੰ ਕੀ ਕਰਨ ਦੀ.
ਇਹ ਸੱਚ ਹੈ, ਇਸ ਨੂੰ ਬਾਈਨਰੀ ਖੋਜ ਨੂੰ ਲਿਖਣ ਲਈ ਇੱਕ ਮਿਸਾਲ 'ਤੇ ਗੌਰ ਕਰਨ ਲਈ ਵਧੀਆ ਹੈ. ਪਾਸਕਲ ਇੱਥੇ ਕਿਸੇ ਵੀ ਵਿਅਕਤੀ ਨੂੰ ਪੂਰਾ ਕਰੇਗਾ - ਵਰਜਨ ਜ਼ਰੂਰੀ ਨਹੀ ਹੈ. ਦੇ ਇੱਕ ਸਧਾਰਨ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਲਿਖਣ ਦੀ ਕਰੀਏ.
ਇਹ ਨਾਮ "massiv" ਦੇ ਤਹਿਤ H 1 ਦੀ ਲੜੀ ਹੈ, ਇੱਕ ਵੇਰੀਏਬਲ ਖੋਜ ਦੇ ਹੇਠਲੇ ਸੀਮਾ ਦਾ ਸੰਕੇਤ, "niz" ਕਿਹਾ, ਸੀਮਾ, "verh", ਔਸਤ ਖੋਜ ਸ਼ਬਦ ਕਹਿੰਦੇ - "sredn"; ਅਤੇ ਦੀ ਲੋੜ ਦਾ ਨੰਬਰ - "isk".
ਇਸ ਲਈ, ਪਹਿਲੀ ਸਾਨੂੰ ਸੀਮਾ ਖੋਜ ਦੇ ਉੱਪਰ ਅਤੇ ਹੇਠਲੇ ਸੀਮਾ ਨਿਰਧਾਰਤ:
niz: = 1;
verh: = h + 1;
ਫਿਰ ਚੱਕਰ ਦਾ ਪ੍ਰਬੰਧ "ਜਦ ਤੱਕ ਤਲ ਉਪਰਲੀ ਸੀਮਾ ਦੇ ਮੁਕਾਬਲੇ ਘੱਟ ਹੈ":
niz
ਹਰ ਕਦਮ 'ਤੇ, ਸਾਨੂੰ ਹਿੱਸੇ 2 ਵੰਡ
sredn: = (niz + verh) Div 2; {ਫੰਕਸ਼ਨ Div ਵਰਤੋ, ਕਿਉਕਿ ਬਾਕੀ ਬਿਨਾ ਪਾੜਾ}
ਸਮੀਖਿਆ ਦੇ ਹਰ ਵਾਰ. ਇਸ ਕਰਕੇ ਇਕਾਈ ਨੂੰ ਹੀ ਜੇ ਮੱਧਮ ਲੋੜੀਦਾ ਹੈ ਪਾਇਆ ਗਿਆ ਹੈ, ਵਿਘਨ ਚੱਕਰ:
іf sredn = isk ਫਿਰ ਤੋੜ;
ਐਰੇ ਦੇ ਮੱਧ ਤੱਤ ਲੋੜੀਦੀ ਵੱਧ, ਖੱਬੇ ਪਾਸੇ ਰੱਦ ਹੋ, ਜੋ ਕਿ ਹੈ, ਔਸਤ ਦੇ ਵੱਡੇ ਸੀਮਾ ਨਿਯੁਕਤ ਤੱਤ:
ਜੇ massiv [sredn]> isk ਫਿਰ verh: = sredn;
ਅਤੇ ਇਸ ਦੇ ਉਲਟ 'ਤੇ, ਜੇ, ਇਸ ਨੂੰ ਹੇਠਲੇ ਸੀਮਾ ਕਰਦਾ ਹੈ:
ਹੋਰ niz: = sredn;
ਨੂੰ ਖਤਮ;
ਜੋ ਕਿ ਸਭ ਨੂੰ ਹੈ, ਜੋ ਕਿ ਪ੍ਰੋਗਰਾਮ ਵਿੱਚ ਹੋ ਜਾਵੇਗਾ.
ਆਓ ਦੇਖੀਏ ਕਿ ਇਹ ਅਭਿਆਸ ਵਿੱਚ ਬਾਈਨਰੀ ਢੰਗ ਨੂੰ ਦੇਖ ਜਾਵੇਗਾ ਕਿਸ ਕਰੀਏ. ਇਸ ਐਰੇ 'ਤੇ ਗੌਰ ਕਰੋ: 1, 3, 5, 7, 10, 12, 18 ਅਤੇ ਇਸ ਨੂੰ ਗਿਣਤੀ ਨੂੰ 12 ਦੀ ਮੰਗ ਕਰੇਗਾ.
ਕੁੱਲ ਵਿਚ ਸਾਨੂੰ 7 ਤੱਤ ਹੈ, ਇਸ ਲਈ ਚੌਥੇ ਮੱਧਮ, ਮੁੱਲ 7 ਕਰੇਗਾ.
1 | 3 | 5 | 7 | 10 | 12 | 18 |
12, 7, 1.3 ਵੱਧ ਅਤੇ 5 ਤੱਤ ਲੈ ਕੇ, ਸਾਨੂੰ ਰੱਦ ਕਰ ਸਕਦਾ ਹੈ. ਫਿਰ ਸਾਨੂੰ ਗਿਣਤੀ ਦੇ 4 ਮਿਲ, 4/2 ਕੋਈ ਬਕਾਇਆ 2. ਇਸ ਲਈ, ਇੱਕ ਨਵ ਤੱਤ 10 ਦੀ ਔਸਤ ਨਾਲ ਹੋਵੇਗਾ.
7 | 10 | 12 | 18 |
ਇੱਥੇ, ਮੱਧ ਤੱਤ ਹੀ 12 ਹੈ, ਇਹ ਦੀ ਲੋੜ ਨੰਬਰ ਹੈ. ਇਹ ਕੰਮ ਪੂਰਾ ਹੋ ਗਿਆ ਹੈ - ਨੰਬਰ 12 ਮਿਲਿਆ ਹੈ.
Similar articles
Trending Now