1、插入排序
void InsertSort(int R[],int n)
{
int i,j;
int temp;
for(i=2;i<=n;++i)
{
temp=R[i];
j=i-1;
while(j>=1&&temp<R[j])
{
R[j+1]=R[j];
--j;
}
R[j+1]=temp;
}
}
2、冒泡排序
void BubbleSort(int R[],int n)
{
int i,j,flag;
int temp;
for(i=n;i>=2;--i)
{
flag=0;
for(j=2;j<=i;++j)
if(R[j-1]>R[j])
{
temp=R[j];
R[j]=R[j-1];
R[j-1]=temp;
flag=1;
}
if(flag==0)
return;
}
}
3、快排
void QickSort(int R[],int l,int r)
{
int temp;
int i=1,j=r;
if(1<r)
{
temp=R[1];
while(i!=j)
{
while(j>i&&R[j]>temp)--j;
if(i<j)
{
R[i]=R[j];
++i;
}
while(i<j&&R[i]<temp)++i;
if(i<j)
{
R[j]=R[i];
--j;
}
}
R[i]=temp;
QickSort(R,1,i-1);
QickSort(R,i+1,r);
}
}
4、选择排序
void SelectSort(int R[],int n)
{
int i,j,k;
int temp;
for(i=1;i<=n;++i)
{
k=i;
for(j=i+i;j<=n;j++)
{
if(R[k]>R[j])
{
k=j;
}
temp=R[i];
R[i]=R[k];
R[k]=temp;
}
}
}
5、堆排序
void Sift(int R[],int low,int high)
{
int i=low,j=2*i;
int temp=R[i];
while(j<=high)
{
if(j<=high&&R[j]<R[j+1])
++j;
if(temp<R[j])
{
R[i]=R[j];
i=j;
j=2*i;
}
else
break;
}
R[i]=temp;
}
void heapSort(int R[],int n)
{
int i;
int temp;
for(i=n/2;i>=1;--i)
Sift(R,i,n);
for(i=n;i>=2;--i)
{
temp=R[1];
R[1]=R[i];
R[i]=temp;
Sift(R,1,i-1);
}
}