მრავალი სამიზნის ძიების (Multiple Targets Search) ალგორითმი in 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.