Java算法-冒泡排序算法

原理

  • 比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。
  • 这样对数组的第 0 个数据到 N-1 个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1 个位置。
  • N=N-1,如果 N 不为 0 就重复前面二步,否则排序完成。

代码

 /**
      * @Param  int[] array
      * @return int[] array
      * @DateTime 2022/3/20 1:21
      * @Description: 冒泡排序算法
      * a,通过比较前后两个相邻的数如果前面的数大于后面的数就交换
      * b,从数组下标为0开始到n-1进行一次遍历后,这样数组的最大的数就沉到了n-1的位置上
      * c,如果n=n-1,n!=0就重复以上操作
      **/
    public int[] bubbleSort(int[] array){
        //判断是否交换过
        boolean isChange=false;
        for (int i=array.length-1;i>=0;i--){
            for (int j=0;j<i;j++){
                if(array[j]>array[j+1]){
                    int temp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=temp;
                    isChange =true;//表示已经交换过
                }else {
                    isChange =false;//表示未交换过
                }
            }
            System.out.println("i="+i+"==>"+ Arrays.toString(array));
            if(isChange==false){
                break;
            }
        }
        return array;
    }
阅读剩余
THE END