快速排序随机化版本
来源:互联网 发布:sql do while的用法 编辑:程序博客网 时间:2024/04/30 17:15
#include<iostream>#include<algorithm>#include<time.h>#include<stdlib.h>using namespace std;void exchange(int &a,int &b){int temp=a;a=b;b=temp;}int PARTITION(int *arry,int p,int r){int x=arry[r]; //主元,划分子数组 int i=p-1;//记录 p<=k<<i 则A[k]<=x;for(int j=p;j<r;j++){if(arry[j]<x){i++;exchange(arry[i],arry[j]);}} exchange(arry[i+1],arry[r]);return i+1;}int RANDOM_PARTITION(int *arry,int p,int r){time_t t; srand((unsigned) time(&t));//srand((int)time(0));int i=rand()%(r-p)+p;//int i=((int) (r*rand()))/ (RAND_MAX+1.0) +p;cout<<"i:"<<i<<endl;exchange(arry[i],arry[r]);return PARTITION(arry,p,r);}void QUICKSORT(int *arry,int p,int r){if(p<r){int q=RANDOM_PARTITION(arry,p,r);QUICKSORT(arry,p,q-1);QUICKSORT(arry,q+1,r);}} void show(int *arry,int i){for(int j=0;j<=i;j++)cout<<arry[j]<<" ";cout<<endl;}int main(){int arry[12]={0,10,31,4,5,9,6,1,2,3,8,-9};QUICKSORT(arry,0,11);show(arry,11);return 0;}
0 0
- 快速排序(随机化版本)
- 快速排序随机化版本
- 快速排序随机化版本
- 快速排序 随机化版本
- 快速排序的随机化版本
- 快速排序的随机化版本
- 快速排序的随机化版本
- 快速排序(随机化版本)
- 快速排序的随机化版本
- 快速排序(随机化版本)
- 快速排序学习2(随机化版本)
- 快速排序随机化版本性能比较
- 算法实践篇-快速排序-随机化版本
- 经典算法--快速排序的随机化版本
- 快速排序之随机化版本(7)
- 快速排序的随机化版本代码
- CLRS 7.3快速排序的随机化版本
- 算法基础4:快速排序(随机化版本)
- 多个项目工程(类库)合并成一个Dll
- c++ split模板实现
- java原生http请求
- Launcher与普通Activity的区别
- NodeJS的Q入门指导(一)
- 快速排序随机化版本
- think in java读书笔记--字符串
- 异常:System.BadImageFormatException,未能加载正确的程序集XXX或其某一依赖项
- 简单插入排序
- 软件工程——整合与感悟
- JavaScript——BOM(浏览器对象模型),时间间隔和暂停
- Android Studio Gradle相关异常记录
- HDU 1060 Leftmost Digit
- Activity常用控件——09