冒泡排序+图解

冒泡排序

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

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

图解一:

 

图解二:

 

 

 

案例:

  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. }
posted @ 2017-02-19 00:02  凯玲之恋  阅读(3266)  评论(0)    收藏  举报