随笔分类 - 排序算法
常见排序算法,更多数据结构和算法详见[GitHub](https://github.com/cliuhuan/datastructures-algorithms),[Gitee](https://gitee.com/tyliuhuan/datastructures-algorithms)
摘要:/** * 基数排序 * 时间复杂度O(nlogn) * @param arr */ public static void radixSort(int[] arr) { //1. 得到数组中最大的数的位数 //假设第一数就是最大数 int max = arr[0]; for (int i = 1;
阅读全文
摘要:/** * 分+合方法 * * @param arr * @param left * @param right * @param temp */ public static void mergeSort(int[] arr, int left, int right, int[] temp) { if
阅读全文
摘要:/** * 堆排序的方法 * 时间复杂度O(nlogn) * @param arr */ public static void heapSort(int arr[]) { int temp = 0; System.out.println("堆排序!!"); //完成我们最终代码,将无序序列构建成一个
阅读全文
摘要:/** * 希尔排序时, 对有序序列在插入时采用交换法 * 时间复杂度O(n^(1.3-2)) * @param arr */ private static void shellSort(int[] arr) { int temp = 0; int count = 0; // 使用循环处理 for
阅读全文
摘要:/** * 插入排序 * 时间复杂度O(n^(1-2)) * @param arr */ private static void insertSort(int[] arr) { int insertVal = 0; int insertIndex = 0; for (int i = 1; i < a
阅读全文
摘要:/** * 快速排序 * 时间复杂度O(nlogn) * @param arr * @param left * @param right */ private static void quickSort(int[] arr, int left, int right) { //左下标 int l =
阅读全文
摘要:/** * 选择排序 * 时间复杂度是 O(n^2) * @param arr */ private static void selectSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { int minIndex = i; in
阅读全文
摘要:// 冒泡排序 的时间复杂度 O(n^2) private static void bubbleSort(int[] arr) { // 临时变量 int temp = 0; // 标识变量,表示是否进行过交换 boolean flag = false; for (int i = 0; i < ar
阅读全文