#include <stdio.h>
//选择排序:不稳定
void SelectionSort(int a[],int N)
{
int i,j,k,t;
for(i=0;i<N-1;i++)
{
k=i;
for(j=i+1;j<N;j++)
{
if(a[k]>a[j])
k=j;
if(k!=i)
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
}
}
//直接插入排序:稳定
void InsertSort(int a[],int N)
{
int i,j,t;
for(i=1;i<N;i++)
{
t=a[i];j=i-1;
while(j>=0 && t<a[j])
{
a[j+1]=a[j];
j--;
}
a[j+1]=t;
}
}
//冒跑排序:稳定
void BubbleSort(int a[],int N)
{
int i,j,k,t;
i=0;
do
{
k=1;
for(j=0;j<N-i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
k=0;
}
} while(k!=1);
}
void main()
{
int a[]={1,2,5,4,9,6,3,7,8,0};
for(int i=0;i<10;i++)
printf("%d ",a[i]);
printf("/n");
SelectionSort(a,10);
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("/n");
InsertSort(a,10);
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("/n");
BubbleSort(a,10);
for(i=0;i<10;i++)
printf("%d ",a[i]);
}