ბინარული ძებნა ყველაზე სწრაფია?
ბინარული ძებნა ყველაზე სწრაფია?

ვიდეო: ბინარული ძებნა ყველაზე სწრაფია?

ვიდეო: ბინარული ძებნა ყველაზე სწრაფია?
ვიდეო: Forza Horizon 4 - TemurGvaradze და ყველაზე სწრაფი მანქანა? 2024, მაისი
Anonim

ორობითი ძებნა არის უფრო სწრაფად ვიდრე ხაზოვანი ძებნა მცირე მასივების გარდა. თუმცა, მასივი ჯერ უნდა იყოს დალაგებული, რომ შეძლოს გამოყენება ბინარული ძებნა . არსებობს სპეციალიზებული მონაცემთა სტრუქტურები, რომლებიც განკუთვნილია სწრაფი ეძებს , როგორიცაა ჰეშის ცხრილები, რომელთა ძებნა უფრო ეფექტურად შეიძლება, ვიდრე ბინარული ძებნა.

უბრალოდ, ორობითი ძებნა უფრო სწრაფია, ვიდრე წრფივი?

ორობითი ძებნა უფრო ეფექტურია ვიდრე ხაზოვანი ძებნა ; მას აქვს O(log n) დროის სირთულე. მონაცემთა სია უნდა იყოს დალაგებული თანმიმდევრობით, რომ ის იმუშაოს. ა ბინარული ძებნა მუშაობს დალაგებული მასივის შუა ელემენტის მოძიებით და თქვენს სამიზნე ელემენტთან შედარებით.

მეორეც, არის თუ არა ორობითი ძებნა საუკეთესო? თუ მონაცემები უკვე დალაგებულია გასაღებზე ეძებს ამისთვის, მაშინ ბინარული ძებნა შორსაა უკეთესი ვიდრე ხაზოვანი ძებნა . სკალირება ცოტა უკან, თუ მასივს 40000 ელემენტია, ბინარული ძებნა ეღირება მაქსიმუმ 16 შედარება, ხოლო ხაზოვანი ძებნა ეღირება მაქსიმუმ 40 000 შედარება და საშუალოდ 20 000 შედარება.

ამ მხრივ, რომელია ყველაზე სწრაფი ძიების ალგორითმი?

ორობითი ძებნა

რა არის ორობითი ძიების დროის სირთულე?

ორობითი ძებნა მუშაობს ყველაზე ცუდ ლოგარითმულად დრო , აკეთებს O(log n) შედარებებს, სადაც n არის მასივის ელემენტების რაოდენობა, O არის Big O აღნიშვნა და log არის ლოგარითმი. ორობითი ძებნა იღებს მუდმივ (O(1)) სივრცეს, რაც იმას ნიშნავს, რომ ალგორითმის მიერ აღებული სივრცე იგივეა მასივის ნებისმიერი რაოდენობის ელემენტისთვის.

გირჩევთ: