十种排序算法整理
十种排序算法 冒泡排序 一共进行 n - 1 轮,在每一轮排序中对相邻两元素进行比较,大的排在后面。 /** * 冒泡排序 * 时间复杂度:最优 O(n),最坏 O(n²),平均 O(n²) * 空间复杂度:O(1),原地排序 * 稳定性:稳定 */ private static void bubbleSort(int[] arr) { int n = arr.length; boolean flag = true; for (int i = 0; i < n - 1; i++) { flag = true; for (int j = 0; j < n - 1 - i; j++) { if (arr[j] > arr[j + 1]) { swap(arr, j, j + 1); flag = false; } } if (flag) break; } } 选择排序 同样进行 n - 1 轮,每一轮从待排序序列中挑出最小的元素,将其放至已排序序列的末尾。 ...