快速排序
来源:互联网 发布:淘宝助理5.6.6.0 编辑:程序博客网 时间:2024/06/08 17:55
快速排序
1、快速排序的原理:在待排序n个记录任取一个记录,作为枢轴,设为pivotkey。经一趟排序,把小于pivotkey的关键字放在前面,大于pivotkey的关键字放在后面以pivotkey为界,然后对这两部分再重复上述的动作,直至每部分只有一个记录。
2、代码如下:
#include<iostream>using namespace std;int Partition(int a[],int low,int high);//功能:以a[low]为枢轴将a[]分割两半。void QSort(int a[],int low,int high);void QuickSort(int a[],int length);int main(){ int a[]={1,49,38,65,97,76,13,27,49}; for(int i=0;i<9;i++) { cout<<a[i]<<" "; } cout<<endl; cout<<"After a quick sort.............."<<endl; QuickSort(a,9); for(int i=0;i<9;i++) { cout<<a[i]<<" "; } cout<<endl; return 0;}int Partition(int a[],int low,int high){ if(low>high||low<0) { return 0; } int pivotkey=a[low];//将枢轴记录放在pivotkey存储 while(low<high) { while(low<high&&a[high]>=pivotkey) {high--;} a[low]=a[high]; while(low<high&&a[low]<=pivotkey) {low++;} a[high]=a[low]; } a[low]=pivotkey;//此时low==high; return low;//返回枢轴记录的位置 }void QSort(int a[],int low,int high){ if(low<high) { int pivotloc=Partition(a,low,high); QSort(a,low,pivotloc-1); QSort(a,pivotloc+1,high); }}void QuickSort(int a[],int length){ QSort(a,0,length);}3、经编译的结果:
阅读全文
1 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- MyEclipse&Maven项目管理教程:详解Maven4MyEclipse
- manjaro 装nvidia独显驱动后,无法进入桌面环境解决办法.md
- 12岁女孩被男主播恐吓威胁 一天打赏主播7万元
- spark streaming统计kafka数据计数不准的问题
- linux 服务及进程
- 快速排序
- 数七之素数
- 解决adb install 错误INSTALL_FAILED_UPDATE_INCOMPATIBLE
- (EM算法)The EM Algorithm
- iOS开发-获取设备唯一标识符(UUID)
- Android实习札记(6)---ViewPager使用详解
- MyEclipse&Maven项目管理教程:如何创建Maven项目
- 找到数组中第几个最小的数据
- oracle中函数和存储过程的区别和联系