ਕੰਪਿਊਟਰ 'ਪ੍ਰੋਗਰਾਮਿੰਗ

ਬਾਈਨਰੀ ਖੋਜ - ਆਸਾਨ ਤਰੀਕੇ ਦੇ ਇੱਕ ਇੱਕ ਐਰੇ ਵਿੱਚ ਇੱਕ ਤੱਤ ਦਾ ਪਤਾ ਕਰਨ ਲਈ

ਅਕਸਰ ਪ੍ਰੋਗਰਾਮਰ, ਵੀ ਸ਼ੁਰੂਆਤ ਹੈ, ਅਸਲ ਨੰਬਰ ਦੀ ਇੱਕ ਸਮੂਹ ਹੈ, ਜੋ ਕਿ ਇੱਕ ਖਾਸ ਨੰਬਰ ਪਤਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਹੈ, ਜੋ ਕਿ ਨਾਲ ਦਾ ਸਾਹਮਣਾ. ਇਹ ਇਸ ਨੂੰ ਭੰਡਾਰ ਇੱਕ ਐਰੇ ਕਿਹਾ ਗਿਆ ਹੈ. ਅਤੇ ਇਸ ਵਿੱਚ ਇਕਾਈ ਦਾ ਪਤਾ ਕਰਨ ਲਈ, ਉੱਥੇ ਤਰੀਕੇ ਦੇ ਇੱਕ ਬੇਸ਼ੁਮਾਰ ਹਨ. ਪਰ ਸਭ ਸਧਾਰਨ ਸੱਜੇ ਤੇ ਇੱਕ ਬਾਈਨਰੀ ਖੋਜ ਮੰਨਿਆ ਜਾ ਸਕਦਾ ਹੈ. ਕੀ ਇਹ ਢੰਗ ਹੈ? ਅਤੇ ਕਿਸ ਬਾਈਨਰੀ ਖੋਜ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ? ਪਾਸਕਲ ਅਜਿਹੇ ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਦੇ ਸੰਗਠਨ ਲਈ ਸੌਖਾ ਵਾਤਾਵਰਣ ਨੂੰ ਹੈ, ਇਸ ਲਈ ਸਾਨੂੰ ਇਸ ਨੂੰ ਵਰਤਣ ਹੋਵੋਗੇ ਦਾ ਅਧਿਐਨ ਕਰਨ ਲਈ.

ਪਹਿਲੀ, ਵਿਸ਼ਲੇਸ਼ਣ, ਇਸ ਢੰਗ ਦੇ ਕੀ ਫਾਇਦੇ ਹਨ, ਇਸ ਨੂੰ ਹੈ, ਇਸ ਲਈ ਸਾਨੂੰ ਸਮਝ ਸਕਦਾ ਹੈ, ਵਿਸ਼ੇ ਦੇ ਅਧਿਐਨ ਵਿਚ ਬਿੰਦੂ ਕੀ ਹੈ. ਇਸ ਲਈ, ਦੇ ਘੱਟੋ-ਘੱਟ 100000000 ਤੱਤ, ਕੁਝ ਪਤਾ ਕਰਨ ਦੀ ਲੋੜ ਹੈ, ਜੋ ਕਿ ਦੀ ਇੱਕ ਦਿਸ਼ਾ ਦੇ ਨਾਲ ਇੱਕ ਐਰੇ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ. ਇਹ ਸੱਚ ਹੈ, ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਆਸਾਨੀ ਨਾਲ ਇੱਕ ਸਧਾਰਨ ਰੇਖਿਕ ਖੋਜ, ਜਿਸ ਵਿੱਚ ਸਾਨੂੰ ਚੱਕਰ ਵਰਤ ਰਹੇ ਹੋ ਸਾਰੇ ਜਿਹੜੇ ਹੈ, ਜੋ ਕਿ ਐਰੇ ਵਿੱਚ ਹਨ, ਨਾਲ ਦੀ ਲੋੜ ਤੱਤ ਦੀ ਤੁਲਨਾ ਦੁਆਰਾ ਹੱਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ. ਸਮੱਸਿਆ ਇਹ ਹੈ ਕਿ ਇਸ ਵਿਚਾਰ ਨੂੰ ਲਾਗੂ ਕਰਨ ਦੇ ਬਹੁਤ ਜ਼ਿਆਦਾ ਵਾਰ ਨੂੰ ਲੈ ਜਾਵੇਗਾ. ਕਈ ਇਲਾਜ, ਅਤੇ ਮੁੱਖ ਪਾਠ ਦੇ ਤਿੰਨ ਲਾਈਨ ਵਿੱਚ ਇੱਕ ਸਧਾਰਨ ਪਾਸਕਲ ਦੇ ਪ੍ਰੋਗਰਾਮ ਵਿੱਚ, ਤੁਹਾਨੂੰ ਇਸ ਨੂੰ ਧਿਆਨ ਨਹੀ ਕਰੇਗਾ, ਪਰ ਸਾਨੂੰ ਸ਼ਾਖਾ ਅਤੇ ਚੰਗੇ ਕਾਰਜਕੁਸ਼ਲਤਾ ਦੀ ਇੱਕ ਵੱਡੀ ਗਿਣਤੀ ਦੇ ਨਾਲ ਇੱਕ ਹੋਰ ਜ ਘੱਟ ਵੱਡੇ ਪ੍ਰਾਜੈਕਟ ਲਈ ਆ, ਪ੍ਰੋਗਰਾਮ ਬਹੁਤ ਲੰਮਾ ਲਈ ਲੋਡ ਕੀਤਾ ਜਾ ਕਰਨ ਲਈ ਤਿਆਰ ਹੋ ਜਾਵੇਗਾ. ਖ਼ਾਸ ਕਰਕੇ ਜੇ ਕੰਪਿਊਟਰ ਕਮਜ਼ੋਰ ਪ੍ਰਦਰਸ਼ਨ ਹੈ. ਇਸ ਲਈ, ਇੱਕ ਬਾਈਨਰੀ ਖੋਜ ਹੈ, ਜੋ ਖੋਜ ਵੇਲੇ 'ਤੇ ਘੱਟੋ-ਘੱਟ ਦੋ ਵਾਰ ਘਟਦੀ ਹੈ.

ਇਸ ਲਈ, ਇਸ ਢੰਗ ਦੇ ਕੰਮ ਦਾ ਅਸੂਲ ਕੀ ਹੈ? ਤੁਰੰਤ ਇਸ ਨੂੰ ਕਹਿਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਬਾਇਨਰੀ ਖੋਜ ਕੰਮ ਕਰਦਾ ਹੈ, ਕਿਸੇ ਵੀ ਐਰੇ ਵਿੱਚ ਨਹੀ ਹੈ, ਪਰ ਸਿਰਫ ਨੰਬਰ ਦੀ ਇੱਕ ਕ੍ਰਮਬੱਧ ਸੈੱਟ 'ਤੇ. ਹਰ ਕਦਮ ਲਿਆ ਐਰੇ ਦੇ ਮੱਧ ਤੱਤ 'ਤੇ (ਤੱਤ ਦੀ ਗਿਣਤੀ ਦਾ ਮਤਲਬ ਹੈ). ਦੀ ਲੋੜ ਹੈ, ਜੇ ਗਿਣਤੀ ਵੱਧ ਵੱਡਾ ਹੈ ਔਸਤ ਹੈ, ਫਿਰ ਸਭ ਨੂੰ, ਜੋ ਛੱਡ ਦਿੱਤਾ ਗਿਆ ਹੈ, ਜੋ ਕਿ ਔਸਤ ਸੈੱਲ ਵੱਧ ਘੱਟ ਹੈ, ਨੂੰ ਰੱਦ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਉੱਥੇ ਨਾ ਦੇਖਣ. ਇਸ ਦੇ ਉਲਟ, ਜੇ ਔਸਤ ਦੇ ਮੁਕਾਬਲੇ ਘੱਟ ਹੈ - ਸੱਜੇ ਜਿਹੜੇ ਨੰਬਰ ਆਪਸ ਵਿੱਚ, ਤੁਹਾਨੂੰ ਖੋਜ ਨਹੀ ਕਰ ਸਕਦਾ ਹੈ. ਫਿਰ ਜਿੱਥੇ ਪਹਿਲੀ ਇਕਾਈ ਨੂੰ ਪੂਰਾ ਐਰੇ ਦੇ ਮੱਧ ਤੱਤ ਹੈ, ਅਤੇ ਪਿਛਲੇ ਅਤੇ ਪਿਛਲੇ ਹੋ ਜਾਵੇਗਾ ਇੱਕ ਨਵ ਖੋਜ ਖੇਤਰ, ਦੀ ਚੋਣ ਕਰੋ. ਨਵ ਖੇਤਰ ਦੀ ਔਸਤ ਗਿਣਤੀ ਦੇ ਸਾਰੇ ਹਿੱਸੇ, ਹੈ, ਜੋ ਕਿ, (ਪਿਛਲੇ ਤੱਤ + ਪੂਰਾ ਐਰੇ ਦੇ ਮੱਧ ਤੱਤ) / 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 10 ਵੱਧ ਹੈ, ਸਾਨੂੰ 7. ਸਿਰਫ਼ 10, 12 ਅਤੇ 18 ਰਹਿੰਦਾ ਹੈ ਰੱਦ.

ਇੱਥੇ, ਮੱਧ ਤੱਤ ਹੀ 12 ਹੈ, ਇਹ ਦੀ ਲੋੜ ਨੰਬਰ ਹੈ. ਇਹ ਕੰਮ ਪੂਰਾ ਹੋ ਗਿਆ ਹੈ - ਨੰਬਰ 12 ਮਿਲਿਆ ਹੈ.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 pa.atomiyme.com. Theme powered by WordPress.