1. 第一趟: 依次比较相邻的两个元素,让较大的下沉,第一趟排序的结果就是数组中最大的数在最后一个;
2. 第二趟: 依次比较相邻的两个元素,让较大的下沉,第二趟排序的结果就是数组中次大的数在倒数第二个;
3. ....
4. 共比较(数组的长度-1)趟
5. Demo
a[] ={0,7,5,6,8,3};
第一趟:075683→075683→075683→057683→057683→056783→056783→056783→056738.(第一趟结束,让8排到最后,依次比较相邻的元素(加黑))
第二趟:056738→056738→056738→056738→056738→056738→056738→056378.(第二趟结束)
第三趟:056378→056378→056378→056378→056378→053678.(第三趟结束)
第四趟:053678→053678→053678→035678.(第四趟结束)
第五趟:035678→035678.(比较结束)
Demo_1
// 核心代码(正宗的冒泡排序)
public class Test{ public static void main(String[] args){ int a[] = {0,7,5,6,8,3}; for(int i=0;i<a.length-1;i++){ for(int j=0;j<a.length-1-i;j++){ if(a[j]>a[j+1]){ int temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } for(int i=0;i<a.length;i++){ System.out.print(a[i]+" "); } } }
运行结果:0 3 5 6 7 8