实现代码:
#include <stdio.h>
void bubble_sort(int a[], int n){
int i,j,k, temp;
for (i=0; i<n; i++){
k = 0;
// 每轮个数减一,刚开始参与数为n,以a[0]为基准,如果后面遇到比它大的,就交换指针
for (j=1; j<n-i; j++){
if (a[k] < a[j]){
k = j;
}
}
// 最后再交换值,前面确定n-i中最大值的指针位置
temp = a[n-i-1];
a[n-i-1] = a[k];
a[k] = temp;
}
}
void printAll(int a[], int n){
int i;
for(i=0; i<n; i++){
printf("%d ", a[i]);
}
}
int main(){
int a[5] = {1, 9, 7, 3, 6};
bubble_sort(a, 5);
printAll(a, 5);
printf("\n");
return 0;
}