冒泡排序
比较相邻的元素。如果第一个比第二个大,就交换他们两个。最大的数会逐个被放到最后直到排序结束。
int a[10]={12 ,43,9,13,67,98,101,89,3,35};//十个数的无序数列
int i,j,t;
for (i = 0; i<10-1; i++) {
for (j = 0; j<10-1-i; j++) {
if (a[j]>a[j+1]) {
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
//打印
for (i = 0; i<10; i++) {
printf("%d\n",a[i]);
}
选择排序法
每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
int a[10]={12 ,43,9,13,67,98,101,89,3,35};//十个数的无序数列
int i,j,t,min;
for (i = 0; i<10-1; i++) {
// 假设最小值下标为i
min = i;
for (j = i; j<10; j++) {
if (a[j]<a[min]) {
min = j;
}
}
if (min != i) {
t = a[min];
a[min] = a[i];
a[i] = t;
}
}
for (i = 0; i<10; i++) {
printf("%d\n",a[i]);
}
未完待续
网友评论