排序算法
排序算法主要用于分享常见的排序的代码,实现方式为Java。
Monodrama_Oliver
这个作者很懒,什么都没留下…
展开
-
堆排序算法
public class Sort_HeapSort { /** * 时间复杂度O(N*logN),额外空间复杂度O(1) * * 堆(完全二叉树、数组) * 堆排序 * 若当前结点下标i: * 左孩子下标(2i+1),右孩子下标(2i+2) * 父结点下标(i-1)...原创 2020-03-28 14:28:06 · 209 阅读 · 0 评论 -
快速排序算法
public class Sort_QuickSort { /** * 利用荷兰国旗问题对经典的快排进行优化 * * 荷兰国旗问题 * 对于arr[l, r],小于num的数放左边,大于num的数放右边,等于num的数字放中间 * * 思路 * 初始化:less指向l前一个位置,more指向r后一个位置 ...原创 2020-03-21 13:47:09 · 241 阅读 · 0 评论 -
归并排序算法
public class Sort_MergeSort { /** * 时间复杂度O(N*logN),额外空间复杂度O(N) * @param arr */ public void mergeSort(int[] arr) { if (arr == null || arr.length < 2) { re...原创 2020-03-15 14:02:08 · 128 阅读 · 0 评论 -
插入排序算法
public class Sort_InsertSort { /** * 时间复杂度O(N^2),额外空间复杂度O(1) * @param arr */ public static void insertSort(int[] arr) { if (arr == null || arr.length < 2) { ...原创 2020-03-07 20:56:01 · 109 阅读 · 0 评论 -
选择排序算法
public class Sort_SelectionSort { /** * 时间复杂度O(N^2),额外空间复杂度O(1) * @param arr */ public void selectionSort(int[] arr) { if (arr == null || arr.length < 2) { ...原创 2020-03-03 21:10:23 · 120 阅读 · 0 评论 -
冒泡排序算法
public class Sort_BubbleSort { /** * 时间复杂度O(N^2),额外空间复杂度O(1) * @param arr */ public void bubbleSort(int[] arr) { if (arr == null || arr.length < 2) { ret...原创 2020-03-01 16:40:05 · 94 阅读 · 0 评论