快速排序、堆排序、希尔排序、冒泡排序、选择排序
数据结构选择:数组
概要设计:定义一个容量为一亿个整数的数组,定义变量n,用rand函数生成n个随机数,并赋值给数组,用clock函数计算排序所用时间。编写排序函数和主函数。
一、快速排序
#include<iostream>
#include <ctime>
#include<cstdlib>
using namespace std;
int a[100000000],n;
void partition(int A[],int s, int t, int& cutpoint)
{
int x=A[s];
int i=s,j=t;
while(i!=j){
while(i<j&&A[j]>x)
j--;
if(i<j)
{
A[i]=A[j];
i++;
}
while(i<j&&A[i]<x)
i++;
if(i<j)
{
A[j]=A[i];
j--;
}
}
A[i]=x;
cutpoint=i;
}
void quicksort(int A[],int s,int t)
{
int f;
if(s<t)
{
partition(A,s,t,f);
quicksort(A,s,f-1);
quicksort(A,f+1,t);
}
}
int main()
{
cin >>n;
for (int c=0;c<n;c++)
a[c]=rand();
int begintime=clock();
quicksort(a,0,n-1);
int endtime = clock(