冒泡排序+图解


冒泡排序

轻的上浮,沉的下降,小的往前来,大的往后走.

两个相邻位置比较,如果前面的元素比后面的元素大就换位置.每比较一次,最后一次就不用再参与比较了.相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处

图解一:

 

图解二:

 

 

 

案例:

  1. public class Demo1_Array {
  2.    public static void main(String[] args) {
  3.       int[] arr = {24, 69, 80, 57, 13};
  4.       bubbleSort(arr);
  5.       print(arr);
  6.    }
  7.    public static void bubbleSort(int[] arr) {
  8.       for (int i = 0; i < arr.length - 1; i++) { //外循环只需要比较arr.length-1次就可以了
  9.          for (int j = 0; j < arr.length - 1 - i; j++) { //-1为了防止索引越界,-i为了提高效率
  10.             if(arr[j] > arr[j+1]) {
  11.                swap(arr,j,j+1);
  12.             }
  13.          }
  14.       }
  15.    }
  16.    public static void print(int[] arr) {
  17.       for (int i = 0; i < arr.length; i++) {
  18.          System.out.print(arr[i] + "");
  19.       }
  20.    }
  21.  
  22.    /*
  23.     * 换位操作
  24.     * 1,返回值类型,void
  25.     * 2,参数列表int[] arr.int i,int j
  26.     */
  27.  
  28.    private static void swap(int[] arr,int i,int j) {
  29.       int temp = arr[i];
  30.       arr[i] = arr[j];
  31.       arr[j] = temp;
  32.    }
  33. }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM