排序演算法 查詢演算法

2021-07-01 21:37:18 字數 1798 閱讀 2646

排序演算法:

交換排序

選擇排序

歸併排序

基數排序

查詢演算法:

動態查詢

雜湊表查詢

簡介:n個資料,從1到n乙個乙個插入進行排序。

空間複雜度:o(1)

時間複雜度:o(n2)

演算法穩定性:穩定演算法

簡介:取幾個增量,如5,2,1(最後乙個增量必須為1),然後從左到右5個5個的排序(如:1到5資料排序,然後2到6資料排序),最後重複操作按2個,1個進行排序。

空間複雜度:o(1)

時間複雜度:o(nlog2n)

演算法穩定性:不穩定演算法

簡介:從第乙個資料開始兩兩比較,直到在一趟兩兩比較中沒有發生交換,排序結束

空間複雜度:o(1)

時間複雜度:o(n2)

演算法穩定性:穩定演算法

感謝:morewindows

**:

public void quick_sort(ints,int l,int r){

if(lx) j--;//從後面找

if(i

簡介:先從數列中取出乙個數作為基準數;

分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊;

再對左右區間重複第二步,直到各區間只有乙個數

空間複雜度:o(n)

時間複雜度:o(nlog2n)

演算法穩定性:不穩定演算法

空間複雜度:o(1)

時間複雜度:o(n2)

演算法穩定性:不穩定演算法

感謝:morewindows

簡介:通過遞迴將待排序陣列分成只有乙個乙個的陣列,再把相鄰的陣列合併(類似快排的分治法)。

小的在左邊,大的在右邊,遍歷完之後就成了乙個乙個的陣列(已經有序了),直接合併就是了,但是必須實時更新原陣列的序列。

空間複雜度:o(n)

時間複雜度:o(nlog2n)

演算法穩定性:穩定演算法

1.二分查詢需要有序表;

2.b+樹和b-樹:b+樹是b-樹的變體,搜尋關鍵字時,b+只有到達葉子結點才能命中(終點命中),b-樹可以在非葉子結點命中(任意位置命中),效能接近二分查詢;

3.hash函式要解決問題:優秀的hash函式,解決衝突。

4.優秀的hash函式可以避免很多衝突,但不能解決衝突,不能因為函式的複雜性而犧牲hash查詢的效能,所以需要有很好的衝突解決辦法,只要有衝突就會涉及到查詢,資料量大衝突就多,查詢的時間就長,hash查詢效能降低。



排序 查詢演算法

主要排序法有 一 冒泡 bubble 排序 相鄰交換 二 選擇排序 每次最小 大排在相應的位置 三 插入排序 將下乙個插入已排好的序列中 四 殼 shell 排序 縮小增量 五 歸併排序 六 快速排序 七 堆排序 八 拓撲排序 九 錦標賽排序 十 基數排序 綜合比較,大致有如下結果 時間效率比較 結...

排序演算法和查詢演算法

法是用來解決常見問題的方法 同乙個問題可以採用多種方法解決,不同 方法適用於不同的環境 排序指的是把一組數字按照某種順序排列好 排序演算法分很多次重複執行,每次負責把 乙個數字放在合適的位置上 為了實現以上效果可以先確定數字然後查詢 位置也可以先確定位置然後查詢數字 通過不斷調整兩個數字的相互順序最...

面試常見演算法 排序查詢演算法

常見面試問題總結目錄 演算法是程式設計師必被的乙個技能,在面試中常常出現,下面總結了面試中出現的常見演算法,這些演算法程式設計師應該牢記在心中,要非常熟練。原理 將陣列分為無序區和有序區兩個區,然後不斷將無序區的第乙個元素按大小順序插入到有序區中去,最終將所有無序區元素都移動到有序區完成排序。要點 ...