ორობითი ძიება vs ხაზოვანი ძებნა
წრფივი ძებნა, რომელიც ასევე ცნობილია როგორც თანმიმდევრული ძებნა, არის უმარტივესი საძიებო ალგორითმი. ის ეძებს მითითებულ მნიშვნელობას სიაში სიის ყველა ელემენტის შემოწმებით. ორობითი ძებნა ასევე არის მეთოდი, რომელიც გამოიყენება დახარისხებულ სიაში მითითებული მნიშვნელობის მოსაძებნად. ორობითი ძიების მეთოდი ანახევრებს შემოწმებული ელემენტების რაოდენობას (თითოეულ გამეორებაში), რაც ამცირებს მოცემული ელემენტის სიაში მდებარეობის დროს.
რა არის ხაზოვანი ძიება?
წრფივი ძებნა არის ძიების უმარტივესი მეთოდი, რომელიც ამოწმებს სიის თითოეულ ელემენტს თანმიმდევრულად, სანამ არ იპოვის მითითებულ ელემენტს.ხაზოვანი ძიების მეთოდის შეყვანა არის თანმიმდევრობა (როგორიცაა მასივი, კოლექცია ან სტრიქონი) და ელემენტი, რომელიც უნდა მოძებნოთ. გამომავალი არის true, თუ მითითებული ელემენტი მოწოდებული თანმიმდევრობის ფარგლებშია ან false, თუ ის არ არის მიმდევრობაში. ვინაიდან ეს მეთოდი ამოწმებს სიის ყველა ელემენტს, სანამ არ მოიძებნება მითითებული ელემენტი, უარეს შემთხვევაში ის გაივლის სიის ყველა ელემენტს, სანამ იპოვის საჭირო ელემენტს. წრფივი ძიების სირთულე არის o(n). ამიტომ ითვლება, რომ ის ძალიან ნელია გამოსაყენებლად დიდი სიებში ელემენტების ძიებისას. მაგრამ ეს არის ძალიან მარტივი და ადვილად განსახორციელებელი.
რა არის ორობითი ძებნა?
ორობითი ძებნა ასევე არის მეთოდი, რომელიც გამოიყენება დახარისხებულ სიაში მითითებული ელემენტის მოსაძებნად. ეს მეთოდი იწყება მოძიებული ელემენტის შედარებით სიის შუაში არსებულ ელემენტებთან. თუ შედარება დაადგენს, რომ ორი ელემენტი ტოლია, მეთოდი ჩერდება და აბრუნებს ელემენტის პოზიციას. თუ მოძიებული ელემენტი შუა ელემენტზე მეტია, ის ხელახლა იწყებს მეთოდს დახარისხებული სიის მხოლოდ ქვედა ნახევრის გამოყენებით.თუ მოძიებული ელემენტი შუა ელემენტზე ნაკლებია, ის ხელახლა იწყებს მეთოდს დახარისხებული სიის მხოლოდ ზედა ნახევრის გამოყენებით. თუ მოძიებული ელემენტი არ არის სიაში, მეთოდი დააბრუნებს უნიკალურ მნიშვნელობას, რომელიც მიუთითებს ამას. ამიტომ ორობითი ძიების მეთოდი ანახევრებს შედარებული ელემენტების რაოდენობას (თითოეულ გამეორებაში), შედარების შედეგიდან გამომდინარე. შესაბამისად, ბინარული ძიება მიმდინარეობს ლოგარითმულ დროში, რის შედეგადაც o(log n) საშუალო საქმეა.
რა განსხვავებაა ორობით ძიებასა და ხაზოვან ძიებას შორის?
მიუხედავად იმისა, რომ ორივე წრფივი და ორობითი ძებნა ძიების მეთოდებია, მათ აქვთ რამდენიმე განსხვავება. მიუხედავად იმისა, რომ ორობითი ძიება მუშაობს დახარისხებულ სიებზე, ლაინერების ძიება შეიძლება ფუნქციონირდეს დაუხარისხებელ სიებზეც. სიის დახარისხებას ჩვეულებრივ აქვს n log n საქმეების საშუალო სირთულე. წრფივი ძებნა მარტივი და მარტივია განსახორციელებელი, ვიდრე ბინარული ძიება. მაგრამ, წრფივი ძიება ძალიან ნელია დიდი სიებით გამოსაყენებლად მისი o(n) საშუალო საქმის შესრულების გამო.მეორეს მხრივ, ორობითი ძებნა ითვლება უფრო ეფექტურ მეთოდად, რომელიც შეიძლება გამოყენებულ იქნას დიდი სიებით. მაგრამ ორობითი ძიების განხორციელება შეიძლება საკმაოდ რთული იყოს და კვლევამ აჩვენა, რომ ორობითი ძიების ზუსტი კოდი შეიძლება მოიძებნოს ოციდან მხოლოდ ხუთში.