冒泡排序

冒泡排序

n个数,需要比较n-1轮,n(n-1)/2次

比较数组中相邻两个数的大小,如果第一个数比第二个数大,那么交换他们的位置

第一轮比较找出最大的那个数,放在最右边

第二轮比较找出第二大的数放在倒数第二个的位置,因为第一轮已经找到最大的数了

每轮比较都会产出一个最大或者最小的数字,而下一轮就可以减少一次比较,直到循环结束

代码实现

public static int[] sort(int[] array) {
       //定义一个临时变量
       int temp = 0;
       //确定需要比较多少轮,因为剩下一个数不需要比,所以是n-1
       for (int i = 0; i < array.length - 1; i++) {
           //每比完一轮少比较一个数i
           for (int j = 0; j < array.length - 1 - i; j++) {
               //比较相邻两个数的大小,大的放后面,小的放前面
               if (array[j+1] < array[j]) {
                   temp = array[j + 1];
                   array[j + 1] = array[j];
                   array[j] = temp;
              }
          }
      }
       return array;
  }

动画展示

动画

 

posted @ 2021-04-28 09:23  余生很贵请别浪费  阅读(88)  评论(0)    收藏  举报