Algorithm ya Utafutaji wa Malengo mengi (Multiple Targets Search) ndani Java

Algorithm ya Utafutaji wa Malengo mengi ni mbinu katika Java upangaji inayotumiwa kutafuta thamani nyingi kwa wakati mmoja ndani ya safu au orodha. Mbinu hii inaboresha mchakato wa utafutaji na kuokoa muda kwa kutafuta thamani nyingi mara moja.

Jinsi Algorithm ya Utafutaji wa Malengo Nyingi Inafanya kazi

Algorithm ya Utafutaji wa Malengo mengi hufanya kazi kwa kurudia kupitia kila kipengele cha safu au orodha na kulinganisha na orodha ya thamani lengwa za kutafutwa. Ikiwa kipengele katika safu kinalingana na thamani inayolengwa, huongezwa kwenye orodha ya matokeo.

Manufaa na Hasara za Algorithm ya Utafutaji wa Malengo Nyingi

Manufaa:

  • Utendaji Bora: Algoriti hii hutafuta thamani nyingi kwa wakati mmoja, kuokoa muda ikilinganishwa na utafutaji tofauti tofauti.
  • Inaweza kutumika katika hali mbalimbali zinazohitaji kutafuta shabaha nyingi.

Hasara:

  • Matumizi ya Kumbukumbu: Kwa sababu ya hitaji la kuhifadhi orodha ya matokeo, algoriti hii inaweza kutumia kumbukumbu zaidi ikilinganishwa na utafutaji rahisi.

Mfano na Ufafanuzi

Fikiria mfano wa kutumia Algoriti ya Utafutaji wa Malengo mengi ili kupata nambari kamili nyingi mahususi katika mkusanyiko kamili katika 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");  
        }  
    }  
}  

Katika mfano huu, tunatumia Algorithm ya Utafutaji wa Malengo mengi ili kupata nambari 2 na 7 ndani ya safu kamili. Algorithm inarudia kupitia safu na inalinganisha kila kipengele na orodha ya thamani lengwa. Katika kesi hii, nambari ya 2 inapatikana kwenye nafasi 1 na 3, na nambari ya 7 inapatikana kwenye nafasi 2 na 6 katika safu.

Ingawa mfano huu unaonyesha jinsi Algorithm ya Utafutaji wa Malengo mengi inaweza kutafuta thamani nyingi kwa wakati mmoja, inaweza pia kutumika kwa hali mbalimbali za utafutaji katika Java upangaji programu.