Doğrusal aramanın saf bir yaklaşım olduğunu ve ikili aramanın daha iyi asimptotik karmaşıklık nedeniyle performanstan daha iyi olduğunu her zaman duydum. Ama ikili arama önce sıralama gerektiğinde neden doğrusal arama daha iyi olduğunu anlamadım?
Doğrusal arama O(n)
ve ikili arama O(log n)
. Bu ikili aramanın daha iyi olduğunu söylemenin temeli gibi görünüyor. Ancak ikili arama,O(n log n)
, en iyi algoritmalar için . Yani ikili arama daha hızlı aslında olmamalı olarak o sıralama gerektirir.
Yazarın naif doğrusal arama yaklaşımını kullanmak yerine ekleme sıralamasında öğenin eklenmesi gereken yeri bulmak için ikili arama kullanmak daha iyi ima CLRS okuyorum. Bu durumda, her döngü yinelemesinde ikili aramanın uygulanabileceği sıralı bir liste olduğu için bu haklı görünmektedir. Ancak, arama yapmamız gereken veri kümesi hakkında hiçbir garanti olmadığı genel durumda, ikili aramayı sıralama gereksinimleri nedeniyle doğrusal aramadan daha kötü kullanmıyor musunuz?
İkili aramayı doğrusal aramadan daha iyi yapan, göz ardı ettiğim pratik hususlar var mı? Veya ikili arama, sıralama için gerekli hesaplama süresini dikkate almadan doğrusal aramadan daha iyi olarak mı değerlendirilir?