一、冒泡排序
主要思路:相邻两个数的比较交换
#include<>
int main( )
{
int a[10],temp=0;
for(int i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(int k=0;k<9;k++)
{
for(int j=1;j<10-k;j++)
{
if(a[j]<a[j-1])
{
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
}
}
for(int m=0;m<10;m++)
{
printf("%d ",a[m]);
}
return 0;
}
二、选择法排序
主要思路:每次找出最小的在交换,较少交换次数
#include<>
int main( )
{
int a[10],temp=0,m;
for(int i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(int k=0;k<9;k++)
{
m=k;
for(int j=1+k;j<10;j++)
{
if(a[j]<a[m])
{
m=j;
}
}
if(m!=k)
{
temp=a[m];
a[m]=a[k];
a[k]=temp;
}
}
for(int m=0;m<10;m++)
{
printf("%d ",a[m]);
}
return 0;
}
三、交换排序
主要思路:先确定一个数,再比较大小交换
#include<>
int main( )
{
int a[10],temp=0;
for(int i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(int k=0;k<9;k++)
{
for(int j=1+k;j<10;j++)
{
if(a[j]<a[k])
{
temp=a[j];
a[j]=a[k];
a[k]=temp;
}
}
}
for(int m=0;m<10;m++)
{
printf("%d ",a[m]);
}
return 0;
}