快速排序
来源:互联网 发布:otsu算法 opencv 编辑:程序博客网 时间:2024/06/01 09:53
快速排序(Quick Sort)
算法思想:采用分治法,首先选取一个主元,再将整个数组一分为二,使其中一个子数组的所有元素均小于等于主元,另外一个子数组的所有元素均大于主元,然后对两个子数组分别采用上述过程进行操作,所以这是一个递归算法。
如果快排算法对主元的选取是固定的,例如每次都选取第一个元素或者最后一个元素,则时间性能上界是O(N2),当原始数组本身就是由小到大或者由大到小排列时,算法性能最差。
快速排序是非稳定排序算法。
int RandPartition( int A[], int p, int q ){int value = A[p];int i = p;int j = q;while(i < j) {while(i < j) {if(A[j] <= value) {A[i] = A[j];break;}j--;}while(i < j) {if(A[i] > value) {A[j] = A[i];break;}i++;}}A[i] = value;return i;}void RandQuickSort( int A[], int p, int q ){int r;if( p < q ){r = RandPartition( A, p, q );RandQuickSort( A, p, r - 1 );RandQuickSort( A, r + 1, q );}}
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 如何操作xlsx结尾文件,使其写入文本
- thread.start和 thread.run 的区别
- linux初次使用切换为root用户
- 函数指针
- 如何分析命令行参数【转】
- 快速排序
- codeblocks 编译自动追加优化选项
- MySQL查找SQL耗时瓶颈 SHOW profiles
- ios平台静态库大小裁减
- 使用 JavaMail 发送电子邮件,适合多种电子邮箱地址充当发送者
- vs中怎么去链接一个库文件(ws2_32.lib)
- 合并iOS设备与模拟器库
- 四 应用层(三)DHCP协议
- 【C指针详解】自学笔记