基本介绍

  • 将最大的往数组最后面扔
  • 每一轮获取一个当前数组最大的值放到后面

例如:

原始数据: {7,-3,10,5,-1} 比较方法: {-3,7,10,5,-1} {-3,7,10,5,-1} {-3,7,5,10,-1} {-3,7,5,-1,10} {-3,7,5,-1,10} {-3,5,7,-1,10} {-3,5,-1,7,10} {-3,5,-1,7,10} {-3,-1,5,7,10} {-3,-1,5,7,10}

代码实现

  1. package com.h.排序;
  2. //冒泡排序
  3. public class Bubbling {
  4. public int[] array;
  5. Bubbling(int[] array){
  6. this.array = array;
  7. }
  8. public void run(){
  9. int temp = 0;
  10. //循环条件是 i < array.length-1 原因: 防止比较的时候出现数组下表越界,保证 i+1 < array.length
  11. for (int j = 0; j < array.length-1 ; j++) {
  12. //记录当前轮次是否有进行位置交换
  13. boolean flag = true;
  14. for (int i = 0; i <array.length-1-j ; i++) {
  15. if(array[i] > array[i+1] ){
  16. temp = array[i];
  17. array[i] = array[i+1];
  18. array[i+1] = temp;
  19. flag = false;
  20. }
  21. }
  22. //如果当前这轮没有进行交换 , 说明已经排序好了
  23. if(flag){
  24. return;
  25. }
  26. }
  27. }
  28. }