算法导论系列文章之快速排序
来源:互联网 发布:去码软件下载 编辑:程序博客网 时间:2024/04/30 03:12
快速排序是一个应用非常广泛的排序算法.它的平均性能非常好.下面看一下具体的代码实现~
//快速排序算法.//2012.12.26#include <iostream>#include <ctime>using namespace std;typedef int ele;//快速排序的随机化版本,该版本是对足够大的输入排序的理想化选择 !void QuickSort(ele arrSort[],int left,int right);int Partition(ele arrSort[],int left,int right);int RandomPartition(ele arrSort[],int left,int right);void Swap(ele &a,ele &b);int main(){ele arr[]={2,4,1,5,3,6,9,7,0,8};int length=10;QuickSort(arr,0,length-1);for(auto i=0;i<length;i++)cout<<arr[i]<<" ";system("pause");return 0;}void QuickSort(ele arrSort[],int left,int right){if(left<right){int mid=RandomPartition(arrSort,left,right);QuickSort(arrSort,left,mid-1);QuickSort(arrSort,mid+1,right);}}int Partition(ele arrSort[],int left,int right){ele rval=arrSort[right];int i=left-1;for(int j=left;j<right;j++){if(arrSort[j]<=rval){i++;Swap(arrSort[i],arrSort[j]);}}Swap(arrSort[i+1],arrSort[right]);return i+1;}int RandomPartition(ele arrSort[],int left,int right){srand(time(0));int i=rand()%(right-left+1)+left;Swap(arrSort[i],arrSort[right]);return Partition(arrSort,left,right);}void Swap(ele &a,ele &b){ele c=a;a=b;b=c;}
0 0
- 算法导论系列文章之快速排序
- 算法导论系列文章之堆排序
- 算法导论系列文章之计数排序
- 算法导论系列文章之插入排序和归并排序
- 算法导论之快速排序
- 算法导论之快速排序
- 算法导论系列文章之红黑树
- 【算法导论之二】快速排序算法
- 算法导论笔记之快速排序
- 算法导论笔记之----随机快速排序
- 【算法导论】第七章之快速排序
- 算法导论 之 快速排序[C语言]
- 【算法导论】C++源码之快速排序
- 快速排序之算法导论实现
- 算法导论之快速排序---学习笔记
- 算法导论之七快速排序
- 算法导论之快速排序文档
- 算法导论学习之快速排序
- C/C++相关题解
- get和post方法
- 浏览csdn随感
- c/c++内存对齐技术之图文终极解释[原创]
- 【工作精华】月末营业日的问题
- 算法导论系列文章之快速排序
- linux menuconfig 详解
- OpenStack api使用记录
- linux中断子系统
- git android sdk 源代码 遇到不知道 如何下载 tag
- myisamchk修复表
- php创建zip压缩文件
- 微信公众平台开发(八) 自定义菜单功能开发
- 第十七周上机实践项目——三色球的问题