快速排序 以第一个,中间,最后元素的平均值为中轴 并测试1000000个整形元素的速度
来源:互联网 发布:360度旋转代码js 编辑:程序博客网 时间:2024/05/01 05:31
#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]+A[(l+r)/2]+A[r])/3;
int temp;
while(l < r)
{
while(l < r && A[r] >= pivot_key) --r;
temp = A[r];
while(l < r && A[l] <= pivot_key) ++l;
A[r] = A[l];
A[l] = temp;
}
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个整形元素的速度
- 以第一个数组元素作为基准元素的快速排序
- 第十四周-交换排序之快速排序(以中间位置的元素为标准)
- 容器的最后一个元素是否大于第一个元素
- php 获取数组第一个元素 以及最后一个元素 && 最后一个元素的键名
- C++快速排序(以中间元素为元点)
- php获取并删除数组的第一个和最后一个元素
- 巧用css去除第一个元素或最后个元素的样式
- 读一组整数到vector 对象,计算并输出每对相邻元素的和。如果读入元素个数 为奇数,则提示用户最后一个元素没有求和,并输出其值。然后修改程序:头 尾元素两两配对(第一个和最后一个,第二个和倒数第二个
- 输入一个数组,最大的元素与第一个元素交换,最小的元素与最后一个元素交换
- 快速排序算法——以数组第一个元素为主元
- 交换排序之快速排序(以中间位置的元素作为基准)
- 数组元素以第三个元素为中心对换两边的两个元素
- 使用php自带函数删除数组的第一个元素和最后一个元素
- js点击列表的第一个元素,不起作用,最后一个元素起作用
- php删除数组最后一个元素和第一个元素,array_shift(),array_pop()的用法
- Python编码转换(单一py文件中应用)
- 关于Cisco路由器配置DHCP全面详解
- 从J2EE转向Android的第四天-----Android Map
- 从栈的角度来理解数组名转换为指针
- C# 如何筛选时间串和计算时间差
- 快速排序 以第一个,中间,最后元素的平均值为中轴 并测试1000000个整形元素的速度
- pciView((查看本機PCI設備的資訊))範例說明
- recvfrom出错
- CCNA实验:全面的三层交换机配置实例
- 忆龙2009:梦幻魔方V1.2.1.1正式发布
- 如何在wireshark里用lua脚本编写dissector解析HTTP BODY (after TCP reassembled)
- Solidworks对图纸属性的获得与设置Get and Set Sheet Properties
- Hello World
- Android组件系列(1):自动完成输入内容的组件(AutoCompleteTextView )