一.冒泡排序
两两比较
int main()
{
int a[100]={2,1,7,6,9,43,8,4,3};
for(int i=0;i<8;i++)
{
for(int j=0;j<8-i;j++)
{
if(a[j]>a[j+1])
{
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(int i=0;i<9;i++)
{
printf("%d ",a[i]);
}
}
二.插入排序
将选中的数与前面的比大小
int main()
{
int a[100]= {2,1,7,6,9,43,8,4,3};
for(int i=1; i<9; i++)
{
int ins=a[i];
int j=i-1;
for(j=i-1; j>=0; j--)
{
if(a[j]<=ins)
{
break;
}
a[j+1]=a[j];
}
a[j+1]=ins;
}
for(int i=0;i<9;i++)
{
printf("%d ",a[i]);
}
}
三.选择排序
在数组中选出最大的,放在末尾
int main()
{
int a[100]= {2,1,7,6,9,43,8,4,3};
for(int i=8;i>=0;i--)
{
int m=0,j=0;
for(int k=0;k<=i;k++)
{
if(a[m]<a[k])
m=k;
}
int t=a[m];
a[m]=a[i];
a[i]=t;
}
for(int i=0;i<9;i++)
{
printf("%d ",a[i]);
}
}
四.快速排序
选取一个数,左右开弓,最后形成左小右大,数次循环,完成排序