diff --git a/homework/algorithm/Main.java b/homework/algorithm/Main.java new file mode 100644 index 0000000000000000000000000000000000000000..f04c6d01801b7b8773392368cfd91a6c42cc4911 --- /dev/null +++ b/homework/algorithm/Main.java @@ -0,0 +1,186 @@ +package algorithm; + +public class Main { + + public static void main(String[] args) { + // TODO Auto-generated method stub + long start = System.nanoTime(); + int[] arr = {50,61,14,59,65,35,9,67,45,99}; + System.out.println("排序前数组:"); + for (int i : arr) { + System.out.print(i+" "); + } + System.out.println(); + selectSort(arr); +// bubbleSort(arr); +// quickSort(arr,0,arr.length-1); +// insertSort(arr); +// mergeSort(arr, 0, arr.length-1); +// shellSort(arr); + System.out.println("排序后数组:"); + for (int i : arr) { + System.out.print(i+" "); + } + + long end = System.nanoTime(); + System.out.println(); + System.out.println("运行用时:"+String.valueOf(end - start)+"纳秒"); + } + /** + * 选择排序 + * @param arr + */ + public static void selectSort(int[] arr){ + for(int i = 0; i < arr.length-1; i++){ + int min = i; + for(int j = i+1; j = 0 && insertNote < arr[j]) { + arr[j + 1] = arr[j];// 如果要插入的元素小于第j个元素,就将第j个元素向后移动 + j--; + } + arr[j + 1] = insertNote;// 直到要插入的元素不小于第j个元素,将insertNote插入到数组中 + } + } + + /** + * 冒泡排序 + * @param array + */ + 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]) { + swap(arr, j, j+1); + } + } + } + } + + /** + * 快速排序 + * @param arr + * @param low 0 + * @param high arr.length-1 + */ + public static void quickSort(int[] arr,int low,int high){ + int i,j,temp,t; + if(low>high){ + return; + } + i=low; + j=high; //temp就是基准位 + temp = arr[low]; + + while (i=arr[i]&&i=0 && sentinel