本文主要是比较冒泡排序、选择排序、 希尔排序、快速排序,这四种不同的排序过程的运行时间。
为了消除数据之间差异导致排序效果的影响,四种排序均使用相同的数组进行排序。为了使运行时间的结果差异更明显,数组长度设为100000(为了防止数组长度溢出,如果使用数组的话,建议定义全局变量。或者使用堆栈、vector等动态内存分配),数组元素取值范围是在[0, 100000]之间的随机正整数。
冒泡排序:
void BubbleSort(long int a[],int len){//冒泡排序
for(int i=0;i<len;i++)
for(int j=0;j<len-i;j++)
if(a[j]>a[j+1]) //比较相邻的两个值,大的往下沉
swap(a[j],a[j+1]);
}
选择排序:
void SelectionSort(long int a[],int len){//选择排序
int min;
for(int i=0;i<len;i++){
min=i;
for(int j=i+1;j<len;j++)
if(a[min]>a[j]) //每一趟都选择最小值
min=j;
swap(a[i],a[min]); //将最小值与此趟第一个值交换
}
}
希尔排序:
void ShellSort(long int a[