7种排序算法
#冒泡排序
稳定排序
时间复杂度:需要比较\(\frac{(n-2+1)(n-2)}{2}\)次,\(O(n^2)\)
1 | void swap(int&a,int&b) |
#选择排序
不稳定,2个相等的数据项可能排序后先后位置变化
\(O(n^2)\)
1 | void selectSort(int a[],int n) |
#直接插入排序
稳定
\(O(n^2)\)
1 | void InsertSort(int a[],int n) |
#希尔排序
不稳定
\(O(n^{\approx1.2})\)
1 | void shellSort(int a[],int n) |
#归并排序
稳定
\(O(n*log_2n)\)
1 | void mergemerge(int a[],int l,int mid,int r,int temp[]) |
#快速排序
不稳定
\(O(n*log_2n)\)
1 | void quickSort(int a[],int l,int r) |
#堆排序
不稳定
\(O(n*log_2n)\)
1 | //最小堆 |