首先,對數組元素進行排序方法總結為以下兩類:
一、簡單排序算法(時間復雜度O(n*n))
1.插入排序
2.選擇排序
3.交換排序,即冒泡排序
二、先進排序算法(時間復雜度O(n*logn))
1.快速排序
2.歸並排序
3.堆排序
接下來,分別對其進行討論:
1.插入排序
算法思想:每一步將一個待排序元素按其關鍵字值的大小插入到已排序序列的適當位置上,直到待排序元素插入完為止。
算法實現:
測試結果:
2.選擇排序
算法思想:每次從待排序序列中選擇一個關鍵字最小的元素(當需要按關鍵字升序排列時),順序排在已排序序列的最后,直至全部排完。
算法實現:
測試結果:
3.交換排序(冒泡排序)
算法思想:兩兩比較待排序序列中的元素,並交換不滿足順序要求的各對元素,直至全部滿足順序要求為止。
算法實現:
測試結果:
4.快速排序
算法思想:
1:分解,以a[p]為基准元素將a[p:r]划分成3段a[p:q-1],a[q],a[q+1:r],使a[p:q-1]中任何一個元素小於等於a[q],而a[q+1:r]中任何一個元素大於等於a[q]。
2:遞歸,通過遞歸調用快速排序算法分別對a[p:q-1]和a[q+1:r]進行排序
算法實現:
測試結果: