直接上代码了,文字懒癌末期
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
/** * */ package array; import java.util.Arrays; /** * @author lizhongfeng_李忠峰 * @fileinfo Test array ArrayDemoSort.java * @time 2015年9月12日 */ public class ArrayDemoSort { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int[] arr = { 34, 19, 11, 109, 3, 50 }; printArray(arr); // selectSort(arr); //选择排序 // bubbleSort(arr); //冒泡排序 // Arrays.sort(arr); //内置方法排序 fastSort(arr); // 快速排序 printArray(arr); // 输出方法 } // 挨个比对,选择排序,最原始的方法 public static void selectSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { for (int j = i + 1; j < arr.length; j++) { if (arr[i] > arr[j]) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } } // 冒泡排序 public static void bubbleSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp; } } } } // 效率高的快速排序,每一大轮只置换一次 ,每次小圈记录最小的角标,每次小轮结束后得到最小的数的角标放在最后面 public static void fastSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { int num = arr[i]; int index = i; for (int j = i + 1; j < arr.length; j++) { if (num > arr[j]) { num = arr[j]; index = j; } } if (index != i) { int temp = arr[i]; arr[i] = arr[index]; arr[index] = temp; } } } public static void printArray(int[] arr) { System.out.print("["); for (int i = 0; i < arr.length; i++) { if (i != arr.length - 1) { System.out.print(arr[i] + ","); } else { System.out.println(arr[i] + "]"); } } } } |
Comments | NOTHING