数据结构
M0104
这个作者很懒,什么都没留下…
展开
-
挑战常见排序(二)——插入排序
插入排序 原地算法 稳定 O(n^2) 思想:分成两个区域 已排序 未排序 默认第一个数为已排序区 第二个数到最后一个数为未排序区 将已排序区的数倒着遍历 若碰到未排序区的数小于将已排序区的数向后移动 将数插入其中 复杂度:最好情况复杂度:O(n) 平均复杂度:O(n^2...原创 2019-08-13 16:44:46 · 92 阅读 · 0 评论 -
挑战常见排序(四)——快速排序
快速排序 原地、不稳定排序、O(nlogn)、o(n) 自己对快速排序做了一个小分类:单路快排、二路快排 1.单路快排 public class FastSort { public static void Fast(int[] arr) { int n = arr.length; if(n <= 1) return; ...原创 2019-08-18 17:57:25 · 135 阅读 · 0 评论 -
挑战常见排序(一)——冒泡排序
冒泡排序 O(n^2) O(1) 稳定 思想:两两交换 时间复杂度: 1.若数字有序 最好时间复杂度:O(n) 2.若无序 最坏时间复杂度:O(n^2) 优化:若数组已经有序 设置标志位 复杂度:最好情况复杂度O(n) 最坏情况复杂度O(n^2) class Bubble { public void Bubble(int[] arr) { ...原创 2019-08-10 22:47:42 · 94 阅读 · 0 评论 -
挑战常见排序(三)——选择排序
选择排序 O(n^2) 不稳定 思想: 选择排序就像插入排序一样也分已排序区间与未排序区间 默认第一个数为最小数,第一次遍历找到最小数,若不是第一个数,则和第一个数交换,以此类推 完成排序 复杂度:最好情况、平均情况、最坏情况都是O(n^2) public class SelectSort { public static void Select(int[] arr){ ...原创 2019-08-15 19:41:48 · 113 阅读 · 0 评论