ਮਲਟੀ-ਟਾਰਗੇਟ ਖੋਜ ਪ੍ਰੋਗਰਾਮਿੰਗ ਵਿੱਚ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਐਲਗੋਰਿਦਮ ਹੈ ਜੋ ਇੱਕੋ ਸਮੇਂ ਇੱਕ ਡੇਟਾ ਸੈੱਟ ਵਿੱਚ ਕਈ ਮੁੱਲਾਂ ਦੀ ਖੋਜ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ। ਇਹ ਐਲਗੋਰਿਦਮ ਪ੍ਰੋਗਰਾਮਿੰਗ ਵਿੱਚ ਵਿਹਾਰਕ ਮੁੱਦਿਆਂ ਨੂੰ ਸੰਬੋਧਿਤ ਕਰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਸੂਚੀ ਜਾਂ ਐਰੇ ਦੇ ਅੰਦਰ ਇੱਕ ਸ਼ਰਤ ਨੂੰ ਪੂਰਾ ਕਰਨ ਵਾਲੇ ਤੱਤ ਲੱਭਣਾ।
ਐਲਗੋਰਿਦਮ ਓਪਰੇਸ਼ਨ
ਮਲਟੀ-ਟਾਰਗੇਟ ਖੋਜ ਐਲਗੋਰਿਦਮ ਆਮ ਤੌਰ 'ਤੇ ਇਕੋ ਟੀਚੇ ਦੀ ਖੋਜ ਲਈ ਐਲਗੋਰਿਦਮ ਦੇ ਸਮਾਨ ਕੰਮ ਕਰਦਾ ਹੈ। ਹਾਲਾਂਕਿ, ਇੱਕ ਸਿੰਗਲ ਟੀਚਾ ਲੱਭਣ ਤੋਂ ਬਾਅਦ ਰੁਕਣ ਦੀ ਬਜਾਏ, ਇਹ ਸਥਿਤੀ ਨੂੰ ਸੰਤੁਸ਼ਟ ਕਰਨ ਵਾਲੇ ਸਾਰੇ ਟੀਚਿਆਂ ਨੂੰ ਲੱਭਣ ਲਈ ਖੋਜ ਜਾਰੀ ਰੱਖਦਾ ਹੈ। ਐਲਗੋਰਿਦਮ ਦੀ ਆਮ ਪ੍ਰਕਿਰਿਆ ਹੇਠ ਲਿਖੇ ਅਨੁਸਾਰ ਹੈ:
- ਡੇਟਾ ਸੈੱਟ ਵਿੱਚ ਹਰੇਕ ਤੱਤ ਦੁਆਰਾ ਦੁਹਰਾਓ।
- ਹਰੇਕ ਤੱਤ ਲਈ ਸਥਿਤੀ ਦੀ ਜਾਂਚ ਕਰੋ। ਜੇਕਰ ਤੱਤ ਸ਼ਰਤ ਨੂੰ ਸੰਤੁਸ਼ਟ ਕਰਦਾ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਨਤੀਜਾ ਸੂਚੀ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ।
- ਸਥਿਤੀ ਨੂੰ ਸੰਤੁਸ਼ਟ ਕਰਨ ਵਾਲੇ ਹੋਰ ਟੀਚਿਆਂ ਨੂੰ ਲੱਭਣ ਲਈ ਦੂਜੇ ਤੱਤਾਂ ਦੁਆਰਾ ਦੁਹਰਾਉਣਾ ਜਾਰੀ ਰੱਖੋ।
- ਸਥਿਤੀ ਨੂੰ ਪੂਰਾ ਕਰਨ ਵਾਲੇ ਸਾਰੇ ਟੀਚਿਆਂ ਵਾਲੀ ਨਤੀਜਾ ਸੂਚੀ ਵਾਪਸ ਕਰੋ।
ਫਾਇਦੇ ਅਤੇ ਨੁਕਸਾਨ
ਲਾਭ:
- ਬਹੁ-ਨਿਸ਼ਾਨਾ ਖੋਜ ਐਲਗੋਰਿਦਮ ਬਹੁਪੱਖੀ ਹੈ ਅਤੇ ਵੱਖ-ਵੱਖ ਸਥਿਤੀਆਂ ਵਿੱਚ ਲਾਗੂ ਹੁੰਦਾ ਹੈ।
- ਇਹ ਹਰੇਕ ਟੀਚੇ ਨੂੰ ਲੱਭਣ ਲਈ ਵੱਖਰੇ ਲੂਪਸ ਕਰਨ ਦੀ ਤੁਲਨਾ ਵਿੱਚ ਸਮਾਂ ਅਤੇ ਮਿਹਨਤ ਦੀ ਬਚਤ ਕਰਦਾ ਹੈ।
ਨੁਕਸਾਨ:
- ਐਲਗੋਰਿਦਮ ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਪ੍ਰਭਾਵਿਤ ਹੋ ਸਕਦੀ ਹੈ ਜਦੋਂ ਵੱਡੇ ਡੇਟਾ ਸੈੱਟਾਂ ਅਤੇ ਸਥਿਤੀ ਨੂੰ ਸੰਤੁਸ਼ਟ ਕਰਨ ਵਾਲੇ ਟੀਚਿਆਂ ਦੀ ਇੱਕ ਉੱਚ ਸੰਖਿਆ ਨਾਲ ਨਜਿੱਠਦੇ ਹੋਏ.
- ਬਹੁਤ ਸਾਰੇ ਟੀਚਿਆਂ ਦੇ ਨਾਲ ਇੱਕ ਵੱਡੀ ਨਤੀਜੇ ਸੂਚੀ ਨੂੰ ਸਟੋਰ ਕਰਨ ਵੇਲੇ ਇਹ ਮੈਮੋਰੀ ਅਕੁਸ਼ਲਤਾਵਾਂ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ।
ਉਦਾਹਰਨ ਅਤੇ ਵਿਆਖਿਆ
ਮੰਨ ਲਓ ਕਿ ਸਾਡੇ ਕੋਲ ਪੂਰਨ ਅੰਕਾਂ ਦੀ ਇੱਕ ਸੂਚੀ ਹੈ ਅਤੇ ਅਸੀਂ ਇਸ ਸੂਚੀ ਵਿੱਚ 3 ਦੇ ਗੁਣਜ ਵਾਲੀਆਂ ਸਾਰੀਆਂ ਸੰਖਿਆਵਾਂ ਨੂੰ ਲੱਭਣਾ ਚਾਹੁੰਦੇ ਹਾਂ। ਹੇਠਾਂ PHP ਵਿੱਚ ਮਲਟੀ-ਟਾਰਗੇਟ ਖੋਜ ਐਲਗੋਰਿਦਮ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦਾ ਇੱਕ ਉਦਾਹਰਨ ਹੈ:
ਇਸ ਉਦਾਹਰਨ ਵਿੱਚ, findMultiplesOfThree
ਫੰਕਸ਼ਨ ਸੂਚੀ ਵਿੱਚ ਹਰੇਕ ਨੰਬਰ ਦੁਆਰਾ ਦੁਹਰਾਉਂਦਾ ਹੈ। ਜੇਕਰ ਕੋਈ ਸੰਖਿਆ 3 ਨਾਲ ਵੰਡਣਯੋਗ ਹੈ(3 ਨਾਲ ਭਾਗ ਕਰਨ 'ਤੇ 0 ਦਾ ਬਾਕੀ ਬਚਿਆ ਹੋਇਆ ਹੈ), ਤਾਂ ਇਹ ਨਤੀਜਾ ਸੂਚੀ ਵਿੱਚ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ। ਅੰਤ ਵਿੱਚ, ਨਤੀਜਾ ਸੂਚੀ ਵਿੱਚ 9, 15, ਅਤੇ 12 ਨੰਬਰ ਹੋਣਗੇ, ਜੋ ਸਕ੍ਰੀਨ ਤੇ ਪ੍ਰਿੰਟ ਕੀਤੇ ਜਾਣਗੇ।
ਇਸ ਲਈ, PHP ਵਿੱਚ ਬਹੁ-ਨਿਸ਼ਾਨਾ ਖੋਜ ਐਲਗੋਰਿਦਮ ਸਾਨੂੰ ਉਹਨਾਂ ਸਾਰੇ ਟੀਚਿਆਂ ਨੂੰ ਆਸਾਨੀ ਨਾਲ ਲੱਭਣ ਅਤੇ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ ਜੋ ਇੱਕ ਡੇਟਾ ਸੈੱਟ ਦੇ ਅੰਦਰ ਇੱਕ ਦਿੱਤੀ ਸ਼ਰਤ ਨੂੰ ਪੂਰਾ ਕਰਦੇ ਹਨ।