快速排序算法实现C/C++
来源:互联网 发布:电脑软件快捷键冲突 编辑:程序博客网 时间:2024/05/22 03:07
对于包含n个数的输入数组来说,快速排序是一种最坏情况时间复杂度为O(n^2)的排序算法。虽然最坏情况时间复杂度很差,但是快速排序通常是实际排序应用中最好的选择,因为它的平均性能非常好:它的期望时间复杂度是O(nlgn),而且O(nlgn)中隐含的常数因子非常小,另外他还能够进行原址排序,甚至在虚拟环境中也能很好地工作。下面是快速排序的C++实现代码及运行结果:
/*对SUM个数进行快速排序*/#include <iostream>#include <ctime>using namespace std;const int SUM = 10;int partion(int A[], int p, int r){ int x = A[r], i = p - 1, temp; for (int j = p; j < r; j++) { if (A[j] <= x) { i = i + 1; temp = A[j]; A[j] = A[i]; A[i] = temp; } } temp = A[i + 1]; A[i + 1] = A[r]; A[r] = temp; return i + 1;}void quicksort(int A[], int p, int r){ int q; if (p < r) { q = partion(A, p, r); quicksort(A, p, q - 1); quicksort(A, q + 1, r); }}void print(int A[], int s){ for (int i = 1; i <= s; i++) { cout << A[i] << endl; }}int main(){ int A[SUM + 1]; memset(A, 0, SUM + 1); srand(time(NULL)); for (int i = 0; i <= SUM; i++) { A[i] = rand() % 100; } cout << "rand numbers: " << endl; print(A, SUM); quicksort(A, 1, SUM); cout << "quicksort numbers: " << endl; print(A, SUM); return 0;}
运行结果如下:
0 0
- 快速排序算法(c#)实现
- 排序算法(C实现)--------- 快速排序
- QUicKSort 快速排序算法 c实现
- 快速排序C语言算法实现
- c语言实现快速排序算法
- 快速排序算法实现(C++)
- 纯c实现快速排序算法
- 快速排序算法(C & Java 实现)
- 快速排序算法的c语言实现
- 快速排序算法实现(C版)
- 快速排序算法的C/C++ 实现
- 快速排序算法的C语言实现
- 算法导论C语言实现: 快速排序
- 快速排序算法 C语言实现
- 直白快速排序算法,C语言实现
- C语言快速排序算法实现
- 【算法】C语言实现的快速排序
- C语言实现数组快速排序算法
- oracle字符串长度
- test-02
- route table使用傳統指令修改方法(非iproute2)
- test-04
- 插入排序(java 实现)
- 快速排序算法实现C/C++
- Ajax再回首
- redis数据结构
- ibatis 中$field$与#field#的区别
- 字符char的转换
- 如何查找苹果API
- 生成二维码,微信分享
- [LeetCode] Word Pattern
- Visual Studio 2015 的安装和使用