之前爱把冒泡排序和选择排序弄混淆了,因为两个排序的实现方法挺类似的。
不过两个排序的效率都不高,都是O(n^2);
//冒泡排序:
for(i=0; i<10; i++){
for(j=0; j<10-i; j++){
if(a[j] > a[j+1]){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
//选择排序
for(j = i+1; j < n; j++){
if(a[i].sc < a[j].sc){
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
//冒泡排序具体代码实例,选择排序见上一篇;
include<stdio.h>
int main(){
int a[10] = {10,3,2,4,9,1,5,4,8,7};
int i,j,temp;
for(i=0; i<10; i++){
printf("%d ",a[i]);
}
printf("\n");
for(i=0; i<10; i++){
for(j=0; j<10-i; j++){
if(a[j] > a[j+1]){
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(i=0; i<10; i++){
printf("%d ",a[i]);
}
printf("\n");
return 0;
}