首先,對數組元素進行排序方法總結爲如下兩類:算法
1、簡單排序算法(時間複雜度O(n*n))數組
1.插入排序測試
2.選擇排序spa
3.交換排序,即冒泡排序blog
2、先進排序算法(時間複雜度O(n*logn))排序
1.快速排序遞歸
2.歸併排序方法
3.堆排序im
接下來,分別對其進行討論:d3
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]進行排序
算法實現:
測試結果: