我有一個關於在插入排序算法中使用二進制搜索的簡單問題。更確切地說,在通常插入排序的每一步中,我們只是在該排序的子數組中使用二進制搜索來查找元素所屬的位置,而不是線性比較元素與前一個(已排序)子數組中的所有元素。我知道這減少了算法所做比較的次數(O(log n)而不是O(n)),但是每個步驟所需的交換次數仍然佔優勢,複雜度仍然是O(n^2)。二進制插入排序和複雜性
我也知道複雜性不是很容易與運行時間相關。我試圖比較n(數組大小)的「小」值的兩種算法的運行時間,高達約500000.二進制插入排序總是比通常的插入排序更快。
兩個都是O(n^2)的事實告訴我,當n變得足夠大時,運行時間應該是相似的,對吧?在這種情況下,有什麼「足夠大」的想法可以看到類似的運行時間?
並不意味着n越大,運行時間應該是相似的。這只是意味着當n接近無窮大時,兩者將以大致相同的速率接近無限的運行時間。 –