冒泡排序是将元素向后比较取最小往前冒
插入排序是将元素插入到前面的有序数组里,一个一个轮着换
#include<stdio.h>
int main()
{
int i,j,s,max;
int a[10]={10,8,30,12,15,16,11,5,7,1};
for(i=0;i<9;++i)
for(j=i+1;j>0;--j)
if(a[j]<a[j-1])
{
s=a[j];
a[j]=a[j-1];
a[j-1]=s;
}
for(i=0;i<10;++i)
printf("%d\n",a[i]);
return 0;
}
//插入排序是从后向前面的有序数列比较,如果该数字比前一个数字小就将这两个数字交换
int main(){
//以下冒泡排序代码
int i,j,s;
int a[10]={5,30,1,4,0,10,6,8,9,7};
for(i=0;i<10;++i)
for(j=10;j>i;--j)
if(a[i]>a[j])
{
s=a[i];
a[i]=a[j];
a[j]=s;
}
for(i=0;i<10;++i)
printf("%d\n",a[i]);
return 0;
}
选择排序:目前认为是从剩余的元素里找最小的值往前冒,与冒泡排序不同的是替换元素的次数,选择排序是利用了中间值作为媒介,没有直接更换数组中的元素。
#include<stdio.h>
int main()//杀了我蒜了
{
int a[10];
int i,j,min,l;
//输入数组
for(i=0;i<10;++i)
{
min=a[i]; //媒介min充当数组元素的值
l=i; //媒介l充当数组元素的序数
for(j=i+1;j<10;++j)
{
if(min<a[j])
min=a[j],l=j;
}
min=a[l];
a[l]=a[i];
a[i]=min;
}
//输出数组
return 0;
}