快速排序 以第一个元素为中轴 并测试1000000个整形元素的速度
来源:互联网 发布:java数据交换平台源码 编辑:程序博客网 时间:2024/05/01 20:38
#include<iostream>
#include<ctime>
using namespace std;
int Partition(int A[], int l, int r);
void QSort(int A[], int l, int r);
void QuickSort(int A[], int N)
{
QSort(A, 0, N-1);
}
void QSort(int A[], int l, int r)
{
if(l < r)
{
int pivot = Partition(A, l, r);
QSort(A, l, pivot-1);
QSort(A, pivot+1, r);
}
}
int Partition(int A[], int l, int r)
{
int pivot_key = A[l];
while(l < r)
{
while(l < r && A[r] >= pivot_key) --r;
A[l] = A[r];
while(l < r && A[l] <= pivot_key) ++l;
A[r] = A[l];
}
A[l] = pivot_key;
return l;
}
int main()
{
long const N = 1000000;
int *A = new int[N];
srand((unsigned)time(NULL)); //随机种子
for(int i=0; i<N; i++)
{
A[i] = rand(); //产生随机数
}
clock_t start, finish, total_time;
start = clock(); //开始时间
QuickSort(A,N); //排序
finish = clock();//结束时间
total_time = finish - start;//计算时间差
cout<<"Total time is: "<<total_time<<endl;
/*for(i=0; i<N; i++)
{
cout<<A[i]<<' ';
}*/
cout<<endl;
return 0;
}
- 快速排序 以第一个元素为中轴 并测试1000000个整形元素的速度
- 快速排序 以第一个,中间,最后元素的平均值为中轴 并测试1000000个整形元素的速度
- 快速排序 以第一个元素为中轴 在小于10个元素时转为直接插入排序 并测试1000000个整形元素的速度
- 以第一个数组元素作为基准元素的快速排序
- 快速排序算法——以数组第一个元素为主元
- 最大堆排序A[1]为第一个元素
- 最大堆排序A[0]为第一个元素
- 数组元素以第三个元素为中心对换两边的两个元素
- 第三周实践项目8 以第一个元素为分界线,将所有小于它的元素移到该元素的前面,将所有大于它的元素移到该元素的后面。
- 快速排序 和 把一个无序的整形数组分成两部分(以数组第一个数为基准进行划分)
- 第十四周-交换排序之快速排序(以中间位置的元素为标准)
- C++快速排序(以中间元素为元点)
- 5个元素排序
- 符合某谓词的第一个元素
- jquery 获取第一个元素的方法
- 容器的最后一个元素是否大于第一个元素
- 第十四周项目一数组大折腾(2)创建一个长度为10的整形数组并初始化,由后往前(由第9个元素向第0个元素方向)输出数组中所有元素的值,改变数组元素的值,令所有的数组加倍,输出改变后的值。
- 以k个元素为一组反转单向链表
- asp.net替换静态模版生成html页
- 优秀程序员的45个习惯
- 一封有趣的邮件列表
- word使用
- PostgreSQL 存储过程中回滚(ROLLBACK)和数组的使用
- 快速排序 以第一个元素为中轴 并测试1000000个整形元素的速度
- 正则表达式30分钟入门教程
- 基于Aforge的物体运动识别-入门篇
- 搭建J2ME开发环境 eclipse
- UltraEdit_V16.00.0.1038 今天安装了,纪念一下
- matlab 7.9.0 帮助翻译--zeros函数
- python中编码转换
- 删除U盘时提示无法停止 ‘通用卷’设备的解决方法
- 毕业5年决定你的命运