1 冒泡排序法
int main()
{
int i,j;
int temp=0;
int a[10]={10,9,3,4,29,45,23,12,1,8};
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;}
for(i=0;i<10;i++)
printf("%d,",a[i]);
return 0;
}
2 选择排序法
int main()
{
int i,j,k;
int temp=0;
int a[10]={10,9,3,4,29,45,23,12,1,8};
for(i=0;i<9;i++)
{k=i;
for(j=i+1;j<10;j++)
if(a[k]>a[j])
{k=j;}
temp=a[k];a[k]=a[i];a[i]=temp;
}
for(i=0;i<10;i++)
printf("%d,",a[i]);
return 0;
}
3 交换法
int main()
{
int i,j;
int temp=0;
int a[10]={10,9,3,4,29,45,23,12,1,8};
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
if(a[i]>a[j])
{temp=a[i];a[i]=a[j];a[j]=temp;}
for(i=0;i<10;i++)
printf("%d,",a[i]);
return 0;
}
4 插入排序
int main()
{
int i,j,t;
int a[10]={10,9,3,4,29,45,23,12,1,8};
for(i=1;i<10;i++)
{
t = a[i];
j=i-1;
while((j>=0) && (a[j] > t))
{
a[j+1] = a[j];
j--;
}
a[j+1] = t; //被排序数放到正确的位置
}
for(i=0;i<10;i++)
printf("%d,",a[i]);
return 0;
}
注意:插入排序不适合对于数据量比较大的排序应用