原理:从第一个数开始,让相邻的两个数进行比较,大的往后排
代码:
#include <stdio.h>
#define N 10
void bubble_sort(int arr[],int len);
void output(int arr[],int len);
int main(void)
{
int arr[N] = {12,5,74,88,33,64,0,90,71,3};
bubble_sort(arr,N);
output(arr,N);
return 0;
}
void bubble_sort(int arr[],int len)
{
int i = 0, j = 0, temp = 0;
for(i=0; i<len-1; ++i){ //相邻的数比较,所以循环len - 1 次
for(j=0; j<len-i-1; ++j){ //i为已经排好序的元素个数
if(arr[j] > arr[j+1]){ //大的数往后排
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
void output(int arr[],int len)
{
for(int i = 0; i<len; ++i){
printf("%d ",arr[i]);
}
putchar('\n');
}
输出结果:?
0? ?3? ?5? ?12? ?33? ?64? ?71? ?74? ?88? 90
|