#include <stdio.h>
#define ARRAY_LEN(x) (sizeof(x)/sizeof(x[0])) //统计数字长度
/*
冒泡排序原理:
依次比较相邻的两个数,将小数放在前面,大数放在后面
*/
void bubbling_sort(int *ary,int len){ //冒泡排序算法<未改进>
int i,j,tmp;
for(i = 0 ;i<len;i++){
for(j = i;j<len;j++){
if(ary[i]>ary[j]) //比较两个数,如果ary[i] 大于ary[j] 则交换数据
{
tmp = ary[i];
ary[i] = ary[j];
ary[j] = tmp;
}
}
}
}
/*
原理:开始时将第一层循环的的数组元素的下标当做最小的下标,然后在第二层循环中找出数组中比这个下标小的元素 。然后在进行数据交换
*/
void select_sort(int *ary,int len){ //选择排序算法
int i,j,min,tmp = 0;
for(min=i=0;i<len;i++){ //把数组下标i赋值给数组元素最小下标 min
for(j=min=i;j<len;j++){ //把j=min=i,从最小的开始
if(ary[min]>ary[j]){ //如果ary[min]大于ary[j]即min不是最小的 则将最小的下标赋值给min
min = j;
}
}
tmp = ary[i]; //交换数据 即将最小的下标的元素赋值第一层循环中给的第i个元素,并交换 <如下三行>
ary[i] = ary[min];
ary[min] = tmp;
}
}
void print_list(int *ary,int len){ //打印数组 列表
int i ;
for(i = 0 ;i<len;i++){
printf("%d ",ary[i]);
}
printf("\n");
}
int main(void){
......略
return 0;
}