一、順序查詢條件:無序或有序佇列。
原理:按順序比較每個元素,直到找到關鍵字為止。
時間複雜度:o(n)
二、二分查詢(折半查詢)
條件:有序陣列
原理:查詢過程從陣列的中間元素開始,如果中間元素正好是要查詢的元素,則搜素過程結束;
如果某一特定元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半中查詢,而且跟開始一樣從中間元素開始比較。
如果在某一步驟陣列為空,則代表找不到。
這種搜尋演算法每一次比較都使搜尋範圍縮小一半。
時間複雜度:o(logn)
三、雜湊表(雜湊表)
條件:先建立雜湊表(雜湊表)
原理:根據鍵值方式(key value)進行查詢,通過雜湊函式,定位資料元素。
時間複雜度:幾乎是o(1),取決於產生衝突的多少。
幾種常見的演算法比較
排序演算法總結 時間複雜度 平方階o n2 的排序 各類簡單排序 直接插入 直接選擇 氣泡排序 線性對數o nlg2n 排序 快速排序 堆排序和歸併排序 o n1 排 序 為介於0 1之間的常數 希爾排序 線性o n 排序 基數排序 桶排序 箱排序 空間複雜度 穩定性 特別注意 1.當輸入陣列有序或...
幾種查詢演算法的比較
1.堆的意義在於最快的找到最大最小值,在堆中插入乙個值,取走最大值或最小值重新構建堆結構,其時間複雜度為o log n 而其它方法至少為 o n 堆在實際中用途不在於排序,堆的應用 a.在於排程演算法中,比如優先順序排程,每次取優先順序最高的.b.可以採用堆構造優先順序佇列,優化dijstra 演算...
(4)STL演算法之比較
區間比較演算法 1 equal 該函式可以實現兩個容器物件的比較,如果兩個物件相等,函式返回true,只能比較屬於同一型別的不同變數。template bool equal inputiterator1 first1,inputiterator1 last1,inputiterator2 first...