排序算法(桶,冒泡,快速),代码备份

 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   }

  

  

原文地址:https://www.cnblogs.com/wzk1992/p/6428027.html