zoukankan      html  css  js  c++  java
  • 排序算法(桶,冒泡,快速),代码备份

     1   /**
     2    * @Description 快速排序法,时间复杂度O{nlgn}
     3    * @date 2017年2月21日 下午6:34:49
     4    */
     5   @Test
     6   public void kuaisu() {
     7     int[] arr = getData();
     8     quicksort(0, arr.length - 1, arr);
     9     System.out.println(Arrays.toString(arr));
    10   }
    11 
    12   public static void quicksort(int left, int right, int[] arr) {
    13     if (left > right) return;
    14     int i, j, temp, n;
    15     temp = arr[left];
    16     i = left;
    17     j = right;
    18     while (i != j) {
    19       while (arr[j] >= temp && i < j)
    20         j--;
    21       while (arr[i] <= temp && i < j)
    22         i++;
    23       if (i < j) {
    24         n = arr[j];
    25         arr[j] = arr[i];
    26         arr[i] = n;
    27       }
    28     }
    29     arr[left] = arr[i];
    30     arr[i] = temp;
    31     quicksort(left,i-1,arr);
    32     quicksort(j+1,right,arr);
    33   }



     1 /**
     2    * @Description 桶排序,时间复杂度O{n}
     3    * @date 2017年2月21日 上午9:58:34
     4    * @action 将5个10以内的整数,从大到小排序
     5    */
     6   @Test
     7   public void tong() {
     8     @SuppressWarnings("resource")
     9     Scanner sc = new Scanner(System.in);
    10     System.out.println("被排序的最大数值:");
    11     int numberMax = sc.nextInt(); // 被排序的最大数值
    12     System.out.println("被排序的数目:");
    13     int number = sc.nextInt(); // 被排序的数目
    14     int[] arr = new int[numberMax];
    15     for (int i = 0; i < number; i++) {
    16       arr[sc.nextInt()] += 1;
    17     }
    18 
    19     for (int i = 0; i < numberMax; i++) {
    20       for (int j = 0; j < arr[i]; j++) {
    21         System.out.println(i);
    22       }
    23     }
    24   }
    25 
    26   /**
    27    * @Description 冒泡排序-单纯数字大小排序,时间复杂度O{n的平方}
    28    * @date 2017年2月21日 下午12:53:13
    29    * @action maopao
    30    */
    31   @Test
    32   public void maopao() {
    33     @SuppressWarnings("resource")
    34     Scanner sc = new Scanner(System.in);
    35     System.out.println("被排序的数目:");
    36     int number = sc.nextInt(); // 被排序的数目
    37     int[] arr = new int[number];
    38     for (int i = 0; i < number; i++) {
    39       arr[i] = sc.nextInt();
    40     }
    41     int temp = 0;
    42     for (int i = 0; i < number - 1; i++) {
    43       for (int j = i; j < number - 1; j++) {// 或者 for (int j = i+1; j < number-1; j++) {
    44         if (arr[j] > arr[j + 1]) {
    45           temp = arr[j];
    46           arr[j] = arr[j + 1];
    47           arr[j + 1] = temp;
    48         }
    49       }
    50     }
    51     System.out.println(Arrays.toString(arr));
    52   }

      

      

  • 相关阅读:
    HTML5基础
    行为类型11-11:状态模式(State Pattern)
    行为类型11-10:中介者模式(MediatorPattern)
    行为类型11-9:责任链模式(Chain of Responsibility Pattern)
    行为类型11-8:模板模式(Template Pattern)
    行为类型11-7:命令模式(Command Pattern)
    行为类型11-6:解释器模式(Interpreter Pattern)
    FTP 连接失败,防火墙端口设置
    Windows下 NodeJs 版本管理 Nvm
    Ubuntu vi 方向键不正常问题
  • 原文地址:https://www.cnblogs.com/wzk1992/p/6428027.html
Copyright © 2011-2022 走看看