მრავალსამიზნე ძიება არის მნიშვნელოვანი ალგორითმი პროგრამირებაში, რომელიც საშუალებას იძლევა ერთდროულად მოძებნოთ მრავალი მნიშვნელობები მონაცემთა ნაკრებში. ეს ალგორითმი განიხილავს პროგრამირების პრაქტიკულ საკითხებს, როგორიცაა ელემენტების პოვნა, რომლებიც აკმაყოფილებენ მდგომარეობას სიაში ან მასივში.
ალგორითმის ოპერაცია
მრავალსამიზნე ძიების ალგორითმი ზოგადად მუშაობს ისევე, როგორც ერთი სამიზნის ძიების ალგორითმი. თუმცა, იმის ნაცვლად, რომ შეჩერდეს ერთი სამიზნის პოვნის შემდეგ, ის აგრძელებს ძიებას ყველა სამიზნის მოსაძებნად, რომელიც აკმაყოფილებს პირობას. ალგორითმის ზოგადი პროცედურა ასეთია:
- გაიმეორეთ მონაცემთა ნაკრების თითოეული ელემენტის მეშვეობით.
- შეამოწმეთ მდგომარეობა თითოეული ელემენტისთვის. თუ ელემენტი აკმაყოფილებს პირობას, დაამატეთ იგი შედეგების სიაში.
- განაგრძეთ სხვა ელემენტების გამეორება, რათა იპოვოთ სხვა სამიზნეები, რომლებიც აკმაყოფილებენ მდგომარეობას.
- დააბრუნეთ შედეგების სია, რომელიც შეიცავს ყველა სამიზნეს, რომელიც აკმაყოფილებს პირობას.
Დადებითი და უარყოფითი მხარეები
უპირატესობები:
- მრავალსამიზნე ძიების ალგორითმი მრავალმხრივია და გამოიყენება სხვადასხვა სიტუაციებში.
- ეს დაზოგავს დროსა და ძალისხმევას, ვიდრე ცალკეული მარყუჟების შესრულება თითოეული სამიზნის მოსაძებნად.
ნაკლოვანებები:
- ალგორითმის მუშაობაზე შეიძლება გავლენა იქონიოს მონაცემთა დიდ ნაკრებებთან და სამიზნეების დიდ რაოდენობასთან, რომლებიც აკმაყოფილებენ მდგომარეობას.
- ამან შეიძლება გამოიწვიოს მეხსიერების არაეფექტურობა, როდესაც დიდი შედეგების სია ინახება მრავალი სამიზნეებით.
მაგალითი და ახსნა
დავუშვათ, რომ გვაქვს მთელი რიცხვების სია და გვინდა ვიპოვოთ ყველა რიცხვი, რომელიც არის 3-ის ჯერადი ამ სიაში. ქვემოთ მოცემულია PHP-ში მრავალსამიზნე ძიების ალგორითმის გამოყენების მაგალითი:
function findMultiplesOfThree($numbers) {
$result = array();
foreach($numbers as $number) {
if($number % 3 === 0) {
$result[] = $number; // Add the satisfying number to the result list
}
}
return $result;
}
$numbers = array(9, 4, 15, 7, 12, 6);
$multiplesOfThree = findMultiplesOfThree($numbers);
echo "Numbers that are multiples of 3 in the list are: ";
foreach($multiplesOfThree as $number) {
echo $number. ";
}
ამ მაგალითში findMultiplesOfThree
ფუნქცია იმეორებს სიის თითოეულ რიცხვს. თუ რიცხვი იყოფა 3-ზე(3-ზე გაყოფისას აქვს ნაშთი 0), ის ემატება შედეგების სიას. საბოლოო ჯამში, შედეგების სია შეიცავს 9, 15 და 12 ნომრებს, რომლებიც დაიბეჭდება ეკრანზე.
ამიტომ, PHP-ში მრავალსამიზნე ძიების ალგორითმი გვეხმარება მარტივად ვიპოვოთ და დავამუშავოთ ყველა სამიზნე, რომელიც აკმაყოფილებს მოცემულ პირობას მონაცემთა ნაკრების ფარგლებში.