下面是具体的实现:
[cpp]
#include
#include
#include
#define N 1000000
int Array[N];
int Temp[N];
//1、冒泡排序
void BubbleSort(int a[],int n){
int i,j;
int temp;
int tag;
for(i=n-1;i>0;i--){
tag = 0;
for(j=0;j
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
tag=1;
}
if(tag==0) break;
}
}
//2、简单插入排序
void SimpleInsertSort(int a[],int n){
int i,j,k;
int temp;
for(i=1;i
for(j=0;j
if(a[j]>a[i]){
k=j;
break;
}
if(j==i) continue;
temp=a[i];
for(j=i;j>k;j--)
a[j]=a[j-1];
a[k]=temp;
}
}
//3、希尔排序
void ShellSort(int a[],int n,int d){
int h,i,j,k;
int temp;
do{
d=d/3+1;
for(h=0;h
for(i=h+d;i
for(j=h;j
if(a[j]>a[i]){
k=j;
break;
}
if(j==i) continue;
temp=a[i];
for(j=i;j>k;j-=d)
a[j]=a[j-d];
a[k]=temp;
}
}while(d>1);
}
//4、简单选择排序
void SimpleSelectSort(int a[],int n){
int i,j,k;
int temp;
for(i=0;i
temp=a[i];
k=i;
for(j=i+1;j
if(a[j]
if(k!=i){
temp=a[j];
k=j;
}
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
}
//5、堆排序
void CreateHeap(int a[],int n){
int i,j;
int temp;
for(i=(n-2)/2;i>=0;i--){
j=2*i+1;
while(j
if(j+1a[j])
j++;
if(a[(j-1)/2]
temp=a[(j-1)/2];
a[(j-1)/2]=a[j];
a[j]=temp;
}
else break;
j=2*j+1;
}
}
}
void HeapAdjust(int a[],int n){
int i=0;
int j;
int temp;