0%
排序算法总结(上)
- 首先先给自己大三下学期定下一个小目标:找到暑假实习公司。
- 因为看了很多学长学姐写的面试经验,觉得数据结构和算法是必问的内容。想想自己对这方面的脑容量为零。
1.直接插入算法
代码实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public static void insertSort(int a[]) { for (int i = 1; i < a.length; i++) { if (a[i - 1] > a[i]) { int temp = a[i]; int j; for (j = i - 1; j >= 0 && a[j] > temp; j--) { a[j + 1] = a[j]; } a[j + 1] = temp; } } System.out.println(""); System.out.println("****1.直接排序之后****:"); for (int i = 0; i < a.length; i++) { System.out.print(a[i] + ","); }
}
|
2.希尔排序
图片解释

代码实现:
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
| public static void shellInsertSort(int a[], int n, int dk) { if (n < 2) return; for (int i = dk; i < n; i++) { if (a[i - dk] > a[i]) { int key = a[i]; int j; for (j = i - dk; j >= 0 && a[j] > key; j -= dk) { a[j + dk] = a[j]; } a[j + dk] = key; } } }
public static void shellSort(int a[]) { int n = a.length; int dk = n / 2; while (dk >= 1) { shellInsertSort(a, n, dk); dk /= 2; } System.out.println(""); System.out.println("****2.希尔排序之后****:"); for (int i = 0; i < a.length; i++) { System.out.print(a[i] + ","); } }
|
3.选择排序
图片解释

代码实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public static void selectSort(int a[]) { if (a.length < 2) return; for (int i = 0; i < a.length - 1; i++) { int min = i; for (int j = i + 1; j < a.length; j++) { if (a[j] < a[min]) { min = j; } } if (min != i) { int temp = 0; temp = a[i]; a[i] = a[min]; a[min] = temp; } } System.out.println(""); System.out.println("****3.选择排序之后:****"); for (int i = 0; i < a.length; i++) { System.out.print(a[i] + ","); } }
|