冒泡排序
比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。最大的數(shù)會逐個被放到最后直到排序結(jié)束。
int a[10]={12 ,43,9,13,67,98,101,89,3,35};//十個數(shù)的無序數(shù)列
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]);
}
選擇排序法
每一次從待排序的數(shù)據(jù)元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的數(shù)據(jù)元素排完。
int a[10]={12 ,43,9,13,67,98,101,89,3,35};//十個數(shù)的無序數(shù)列
int i,j,t,min;
for (i = 0; i<10-1; i++) {
// 假設(shè)最小值下標為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]);
}
未完待續(xù)