以下给出冒泡排序的原理图和代码:
从左往右两个数字两两比较,大的放右边,逐渐给前n个,前n-1个,。。。前1个进行排序。
#include <stdio.h>
#include <stdlib.h>
//这是两两比较动作,从左到右,让右边到数字最大,每一趟都能保证最大的排到后面
void Bubble(int arr[],int n){
int i;
int temp;
for(i=0;i<n-1;i++){
if(arr[i]>arr[i+1]){
temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}
//第一次排序保证前n个里最大的在最后,第二次保证前n-1个,直到第一个
void BubbleSort(int arr[],int n){
int i;
for(i=n;i>=1;i--){
Bubble(arr,i);
}
}
int main()
{
int arr[]={4,5,6,2,8,7,1,0,9};
int i;
BubbleSort(arr,9);
for(i=0;i<9;i++){
printf("%d\n",arr[i]);
}
return 0;
}