排序演算法:
交換排序
選擇排序
歸併排序
基數排序
查詢演算法:
動態查詢
雜湊表查詢
簡介: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 排序 縮小增量 五 歸併排序 六 快速排序 七 堆排序 八 拓撲排序 九 錦標賽排序 十 基數排序 綜合比較,大致有如下結果 時間效率比較 結...
排序演算法和查詢演算法
法是用來解決常見問題的方法 同乙個問題可以採用多種方法解決,不同 方法適用於不同的環境 排序指的是把一組數字按照某種順序排列好 排序演算法分很多次重複執行,每次負責把 乙個數字放在合適的位置上 為了實現以上效果可以先確定數字然後查詢 位置也可以先確定位置然後查詢數字 通過不斷調整兩個數字的相互順序最...
面試常見演算法 排序查詢演算法
常見面試問題總結目錄 演算法是程式設計師必被的乙個技能,在面試中常常出現,下面總結了面試中出現的常見演算法,這些演算法程式設計師應該牢記在心中,要非常熟練。原理 將陣列分為無序區和有序區兩個區,然後不斷將無序區的第乙個元素按大小順序插入到有序區中去,最終將所有無序區元素都移動到有序區完成排序。要點 ...