原理:比较临近的两个元素,只要不符合顺序就进行交换;
要点:1.不要越界;2.遍历一遍以后最大的元素就会到最后,所以下次遍历就不用遍历整个数组
void bubble_sort(int a[],int n) { int i,j; for(i=0; i<n-1; i++) { for(j=0; j<n-i-1; j++) { if(a[j]>a[j+1]) { swap(a+j,a+j+1); } } } } void swap(int *pa,int *pb) { int temp; temp=*pa; *pa=*pb; *pb=temp; }
有图有真相,一趟遍历后的结果:
每趟遍历的变化情况:
原文:https://www.cnblogs.com/wangbin2188/p/9593597.html