juhugufudu 发表于 2019-8-31 12:02:52

冒泡排序与选择排序

package com.itheima_04;

public class Test5 {
    public static void main(String[] args) {
      int[] arr = {1,3,4,2,0,9,89,1};
      //调用方法排序
      //sort(arr);
      print_mo(arr);
      print_array(arr);
    }
    /*
    * 选择排序:
    *   i      j
    * arr arr
    * arr arr
    * arr arr
    * arr arr
    * arr arr
    * arr arr
    * i是外层循环长度是length-1
    * j是内层循环,长度是length,与i的关系是i+1+j
    * 其中,j因该是从i+1开始,然后j++
    * 当判断到arr>arr时,arr与arr交换位置
    * */
    public static void sort(int[] arr){
      for (int i = 0;i<arr.length-1;i++){
            for (int j = i+1;j <arr.length;j++){
                if (arr>arr){
                  int temp = arr;
                  arr = arr;
                  arr = temp;
                }
            }
      }
    }
    public static void print_array(int[] arr){
      System.out.print("[");
      for (int i = 0;i < arr.length;i++){
            if (i==arr.length-1){
                System.out.println(arr+"]");
            }else{
                System.out.print(arr+",");
            }
      }
    }
    /*
    * 冒泡排序:
    *   j   j+1
    * 第一次
    * arr arr
    * arr arr
    * arr arr
    * 第二次
    * arr arr
    * arr arr
    * 第三次
    * arr arr
    *
    * for(int i = 0; i< arr.length-1;i++){
    *   for(int j = 0;j <arr.length-i-1;j++){
    *       if(arr>arr){
    *         int temp = arr;
    *         arr = arr;
    *         arr = temp;
    * }}}
    * 其中i控制比较的次数,j控制索引
    * arr.length-i-1, debug一下:
    * 4-0-1 =3;内层循环3次,j的值分别是0,1,2
    * 4-1-1 =2;内层循环2次,j的值分别是0,1
    * 4-2-1 =1;内层循环1次,j的值分别是0
    * 注:-1是为了Index异常
    * */
    public static void print_mo(int[] arr){
      for (int i = 0;i < arr.length-1;i++){
            for (int j = 0;j < arr.length-i-1;j++){
                if (arr>arr1]){
                  int temp = arr;
                  arr = arr1];
                  arr1] = temp;
                }
            }
      }
    }
}

页: [1]
查看完整版本: 冒泡排序与选择排序