(Multiple Targets Search) ਵਿੱਚ ਮਲਟੀਪਲ ਟਾਰਗੇਟਸ ਖੋਜ ਐਲਗੋਰਿਦਮ Java

ਮਲਟੀਪਲ ਟਾਰਗੇਟਸ ਖੋਜ ਐਲਗੋਰਿਦਮ Java ਪ੍ਰੋਗਰਾਮਿੰਗ ਵਿੱਚ ਇੱਕ ਢੰਗ ਹੈ ਜੋ ਇੱਕ ਐਰੇ ਜਾਂ ਸੂਚੀ ਵਿੱਚ ਇੱਕੋ ਸਮੇਂ ਕਈ ਮੁੱਲਾਂ ਦੀ ਖੋਜ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਪਹੁੰਚ ਖੋਜ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਂਦਾ ਹੈ ਅਤੇ ਇੱਕੋ ਸਮੇਂ ਕਈ ਮੁੱਲਾਂ ਦੀ ਖੋਜ ਕਰਕੇ ਸਮਾਂ ਬਚਾਉਂਦਾ ਹੈ।

ਮਲਟੀਪਲ ਟਾਰਗੇਟ ਖੋਜ ਐਲਗੋਰਿਦਮ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ

ਮਲਟੀਪਲ ਟਾਰਗੇਟਸ ਖੋਜ ਐਲਗੋਰਿਦਮ ਐਰੇ ਜਾਂ ਸੂਚੀ ਦੇ ਹਰੇਕ ਤੱਤ ਨੂੰ ਦੁਹਰਾਉਣ ਅਤੇ ਖੋਜ ਕੀਤੇ ਜਾਣ ਵਾਲੇ ਟੀਚੇ ਮੁੱਲਾਂ ਦੀ ਸੂਚੀ ਨਾਲ ਤੁਲਨਾ ਕਰਕੇ ਕੰਮ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਐਰੇ ਵਿੱਚ ਇੱਕ ਤੱਤ ਇੱਕ ਟੀਚਾ ਮੁੱਲ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਨਤੀਜਾ ਸੂਚੀ ਵਿੱਚ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ।

ਮਲਟੀਪਲ ਟਾਰਗੇਟ ਖੋਜ ਐਲਗੋਰਿਦਮ ਦੇ ਫਾਇਦੇ ਅਤੇ ਨੁਕਸਾਨ

ਲਾਭ:

  • ਚੰਗੀ ਕਾਰਗੁਜ਼ਾਰੀ: ਇਹ ਐਲਗੋਰਿਦਮ ਇੱਕ ਵਾਰ ਵਿੱਚ ਕਈ ਮੁੱਲਾਂ ਦੀ ਖੋਜ ਕਰਦਾ ਹੈ, ਕਈ ਵੱਖਰੀਆਂ ਖੋਜਾਂ ਕਰਨ ਦੇ ਮੁਕਾਬਲੇ ਸਮੇਂ ਦੀ ਬਚਤ ਕਰਦਾ ਹੈ।
  • ਬਹੁਮੁਖੀ: ਵੱਖ-ਵੱਖ ਸਥਿਤੀਆਂ ਵਿੱਚ ਲਾਗੂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਲਈ ਕਈ ਟੀਚਿਆਂ ਦੀ ਖੋਜ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।

ਨੁਕਸਾਨ:

  • ਮੈਮੋਰੀ ਦੀ ਖਪਤ: ਨਤੀਜਾ ਸੂਚੀ ਨੂੰ ਸਟੋਰ ਕਰਨ ਦੀ ਲੋੜ ਦੇ ਕਾਰਨ, ਇਹ ਐਲਗੋਰਿਦਮ ਸਧਾਰਨ ਖੋਜਾਂ ਦੇ ਮੁਕਾਬਲੇ ਜ਼ਿਆਦਾ ਮੈਮੋਰੀ ਦੀ ਖਪਤ ਕਰ ਸਕਦਾ ਹੈ।

ਉਦਾਹਰਨ ਅਤੇ ਵਿਆਖਿਆ

ਵਿੱਚ ਇੱਕ ਪੂਰਨ ਅੰਕ ਐਰੇ ਵਿੱਚ ਕਈ ਖਾਸ ਪੂਰਨ ਅੰਕਾਂ ਨੂੰ ਲੱਭਣ ਲਈ ਮਲਟੀਪਲ ਟਾਰਗੇਟ ਖੋਜ ਐਲਗੋਰਿਦਮ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਇੱਕ ਉਦਾਹਰਣ 'ਤੇ ਵਿਚਾਰ ਕਰੋ Java ।

import java.util.ArrayList;  
import java.util.List;  
  
public class MultipleTargetsSearchExample {  
    public static List<Integer> multipleTargetsSearch(int[] array, int[] targets) {  
        List<Integer> results = new ArrayList<>();  
  
        for(int target: targets) {  
            for(int i = 0; i < array.length; i++) {  
                if(array[i] == target) {  
                    results.add(i); // Add position to results if found  
                }  
            }  
        }  
  
        return results;  
    }  
  
    public static void main(String[] args) {  
        int[] numbers = { 4, 2, 7, 2, 9, 5, 7 };  
        int[] targets = { 2, 7 };  
  
        List<Integer> positions = multipleTargetsSearch(numbers, targets);  
  
        if(!positions.isEmpty()) {  
            System.out.println("Targets found at positions: " + positions);  
        } else {  
            System.out.println("Targets not found in the array");  
        }  
    }  
}  

ਇਸ ਉਦਾਹਰਨ ਵਿੱਚ, ਅਸੀਂ ਇੱਕ ਪੂਰਨ ਅੰਕ ਐਰੇ ਦੇ ਅੰਦਰ ਨੰਬਰ 2 ਅਤੇ 7 ਨੂੰ ਲੱਭਣ ਲਈ ਮਲਟੀਪਲ ਟਾਰਗੇਟ ਖੋਜ ਐਲਗੋਰਿਦਮ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ। ਐਲਗੋਰਿਦਮ ਐਰੇ ਰਾਹੀਂ ਦੁਹਰਾਉਂਦਾ ਹੈ ਅਤੇ ਹਰੇਕ ਤੱਤ ਦੀ ਟੀਚਾ ਮੁੱਲਾਂ ਦੀ ਸੂਚੀ ਨਾਲ ਤੁਲਨਾ ਕਰਦਾ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਨੰਬਰ 2 ਪੋਜੀਸ਼ਨ 1 ਅਤੇ 3 'ਤੇ ਪਾਇਆ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਨੰਬਰ 7 ਐਰੇ ਵਿੱਚ ਪੋਜੀਸ਼ਨ 2 ਅਤੇ 6 'ਤੇ ਪਾਇਆ ਜਾਂਦਾ ਹੈ।

ਹਾਲਾਂਕਿ ਇਹ ਉਦਾਹਰਨ ਇਹ ਦਰਸਾਉਂਦੀ ਹੈ ਕਿ ਕਿਵੇਂ ਮਲਟੀਪਲ ਟਾਰਗੇਟ ਖੋਜ ਐਲਗੋਰਿਦਮ ਇੱਕ ਵਾਰ ਵਿੱਚ ਕਈ ਮੁੱਲਾਂ ਦੀ ਖੋਜ ਕਰ ਸਕਦਾ ਹੈ, ਇਹ Java ਪ੍ਰੋਗਰਾਮਿੰਗ ਵਿੱਚ ਵੱਖ-ਵੱਖ ਖੋਜ ਦ੍ਰਿਸ਼ਾਂ 'ਤੇ ਵੀ ਲਾਗੂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।