Algoritmi i kërkimit të objektivave të shumëfishta (Multiple Targets Search) në Java

Algoritmi i kërkimit të objektivave të shumëfishta është një metodë në Java programim që përdoret për të kërkuar vlera të shumta njëkohësisht brenda një grupi ose liste. Kjo qasje optimizon procesin e kërkimit dhe kursen kohë duke kërkuar vlera të shumta në të njëjtën kohë.

Si funksionon algoritmi i kërkimit të objektivave të shumëfishta

Algoritmi i kërkimit të synimeve të shumëfishta funksionon duke përsëritur çdo element të grupit ose listës dhe duke i krahasuar ato me një listë të vlerave të synuara që do të kërkohen. Nëse një element në grup përputhet me një vlerë të synuar, ai shtohet në listën e rezultateve.

Avantazhet dhe disavantazhet e algoritmit të kërkimit të objektivave të shumëfishta

Përparësitë:

  • Performancë e mirë: Ky algoritëm kërkon vlera të shumta në të njëjtën kohë, duke kursyer kohë në krahasim me kryerjen e kërkimeve të shumta të veçanta.
  • I gjithanshëm: Mund të aplikohet në skenarë të ndryshëm që kërkojnë kërkimin e objektivave të shumtë.

Disavantazhet:

  • Konsumi i memories: Për shkak të nevojës për të ruajtur listën e rezultateve, ky algoritëm mund të konsumojë më shumë memorie në krahasim me kërkimet e thjeshta.

Shembull dhe Shpjegim

Konsideroni një shembull të përdorimit të Algoritmit të Kërkimit të Objektivave të Shumëfishtë për të gjetur numra të plotë specifikë të shumtë në një grup me numra të plotë në 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");  
        }  
    }  
}  

Në këtë shembull, ne përdorim algoritmin e kërkimit të objektivave të shumëfishta për të gjetur numrat 2 dhe 7 brenda një grupi të plotë. Algoritmi përsëritet përmes grupit dhe krahason çdo element me listën e vlerave të synuara. Në këtë rast, numri 2 gjendet në pozicionet 1 dhe 3, dhe numri 7 gjendet në pozicionet 2 dhe 6 në grup.

Ndërsa ky shembull demonstron se si Algoritmi i Kërkimit të Objektivave të Shumëfishtë mund të kërkojë vlera të shumta në të njëjtën kohë, ai gjithashtu mund të aplikohet në skenarë të ndryshëm kërkimi në Java programim.