package sort; import java.util.Date; import java.util.Random; public class Sort { public static void main(String[] args) { // int[] arr = new int[]{3, 5, 9, 8, 4, 1, 7, 2, 6, 0}; int[] arr = new int[10000]; Random r = new Random(); for (int i = 0; i < arr.length; i++) { arr[i] = r.nextInt(10000)+1; } long start = System.currentTimeMillis(); //冒泡排序 3 // bubbleSort(arr); //选择排序 4 // selectionSort(arr); //插入排序 2 // insertSort(arr); //快速排序 1 // quickSort(arr, 0, arr.length - 1); // show(arr); long end = System.currentTimeMillis(); long s = end - start; System.out.println("times: " + s); } public static void bubbleSort(int[] arr) { for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } public static void selectionSort(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 insertSort(int[] arr) { for (int i = 0; i < arr.length; i++) { for (int j = i; j > 0; j--) { if (arr[j] < arr[j - 1]) { int temp = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = temp; } } } } public static void quickSort(int[] arr, int i, int j) { int start = i; int end = j; if (start > end) return; int basenum = arr[i]; while (start != end) { while (true) { if (start >= end || basenum > arr[end]) break; end--; } while (true) { if (start >= end || basenum < arr[start]) break; start++; } int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; } int temp = arr[i]; arr[i] = arr[start]; arr[start] = temp; quickSort(arr, i, start - 1); quickSort(arr, start + 1, j); } public static void show(int[] arr) { System.out.print("[ "); for (int i = 0; i < arr.length - 1; i++) { System.out.print(arr[i] + ", "); } System.out.println(arr[arr.length - 1] + " ]"); } }
四个常用排序
最新推荐文章于 2024-07-12 10:59:24 发布