首先推薦乙個學習資料結構的優秀的視覺化**:
主要總結以下6種排序演算法,其中插入排序、選擇排序、歸併排序、快速排序。
1. 氣泡排序(bubble sort)和快速排序(quick sort)和隨機快速排序(random quick sort)
博文待寫
2.插入排序(insertion sort)和希爾排序(shell sort):希爾排序是插入排序的高效改進版本。
博文待寫
3.選擇排序(selection sort)和堆排序(heap sort)
博文待寫
4.歸併排序(merge sort)
博文待寫
5. 計數排序(counting sort)
博文待寫
6. 基數排序(radix sort)
博文待寫
排序演算法
平均情況
最好情況
最壞情況
空間複雜度
穩定性氣泡排序
o(n^2)
o(n)
o(n^2)
o(1)
穩定快速排序
o(nlgn)
o(nlgn)
o(n^2)
o(lgn)
不穩定插入排序
o(n^2)
o(n)
o(n^2)
o(1)
穩定希爾排序
o(n^1.5)
o(n)
o(n^2)
o(1)
不穩定選擇排序
o(n^2)
o(n^2)
o(n^2)
o(1)
不穩定堆排序
o(nlgn)
o(nlgn)
o(nlgn)
o(1)
不穩定歸併排序
o(nlgn)
o(nlgn)
o(nlgn)
o(n)穩定
各種常規排序演算法總結
基本思想是 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子表中的適當位置,直到全部記錄插入完成為止。常規插入排序分兩種,即直接插入排序和希爾排序。假設待排序的記錄放在陣列r 0.n 1 中,排序過程的某一中間時刻,r被劃分成兩個子區間r 0.i 1 和r i.n 1 其中 前乙個區間...
常規排序演算法 選擇排序
表現最穩定的排序演算法之一 這個穩定不是指演算法層面上的穩定哈 因為無論什麼資料進去都是o n 的時間複雜度 所以用到它的時候,資料規模越小越好。唯一的好處可能就是不占用額外的記憶體空間了吧。理論上講,選擇排序可能也是平時排序一般人想到的最多的排序方法了吧。1 演算法簡介選擇排序 selection...
五一常規總結
其實這篇部落格本來是昨天五月一日寫的,奈何昨天晚上回家太晚,早把這事拋到九霄雲外去了,所以還是今天來總結五一之前的課吧。了解了相當於高階版的二分演算法,知道了原來二分也是要控制的這麼精密,二分法找答案,最小中求最大,或最大中求最小時,當然對未排序的要先排序 應用範圍 1,求值 2,引數間具有相關性時...