冒泡排序
#include<stdio.h>
#define n 10
void main(){
int a[n]={10,9,7,8,5,6,4,1,2,3};
int i,x;
for(x=0;x<n-1;x++) //内层的循环每次排好一个数,所以外层共需要执行n-1次就能完成排序
{
for(i=0;i<n-1-x;i++) //两两比较,大的值放后面。n个数需要比较n次,x的值每加一次说明有x个值拍好了,所以还剩n-x个数没排好{
if(a[i]>a[i+1])
{
int j;
j=a[i];a[i]=a[i+1];a[i+1]=j;
}
}}
for(x=0;x<n;x++)
printf("%d",a[x]);
}
简单选择排序
#include<stdio.h>
#define n 10
void main(){
int a[n]={10,9,7,8,5,6,4,1,2,3};
int i,x=0;
for(i=0;i<n-1;i++)
for(x=i+1;x<n;x++)//当前的i和后面的每一个元素比较,然后将最小值存放在i的位置。
//x从i后面的i+1开始比较,一直比较到最后一个元素,所以x<n
if(a[i]>a[x])
{ int t;
t=a[i];
a[i]=a[x];
a[x]=t;
}
for(x=0;x<n;x++)
printf("%d",a[x]);
}