sort
文章平均质量分 51
TimeMagician
这个作者很懒,什么都没留下…
展开
-
Algorithms 练习2.5.19--Kendall tau距离
Kendall tau distance原创 2017-10-25 15:40:22 · 646 阅读 · 0 评论 -
快速排序
思想:快速排序的核心思想是切分,即选定一个元素,大于他的放一边,小于等于他的放另一边。当切分好的数组恰好都是有序的时候,那整个数组就都有序了。为了保证切分的数组有序,就只用对两个子数组进行再次快排(切分),直至被切为单位长度1的数组。 切分操作至少保证了一个切分元素是在正确位置上的。复杂度:时间复杂度:O(nlgn)O(nlgn)O(nlgn)空间复杂度:O(1)O(1)O(1)...原创 2018-06-19 20:12:50 · 185 阅读 · 0 评论 -
归并排序
思想:归并排序的核心是归并,即将两个有序数组合并成一个有序数组的操作。通过该方法加上分治的思想我们设计了归并排序,首先将一个数组划分为两个数组,由于这两个数组并未排好序,因此要继续划分,直至变成两个有序的数组(即长度为1),这时再逐级调用归并算法,不断将有序小数组归并成有序大数组。自上而下&自下而上归并的区别: 自上而下:采用了分治的思想,因此每次划分的数组大小都是差不多一样大的...原创 2018-06-19 17:11:02 · 246 阅读 · 0 评论 -
希尔排序--加速版插入排序
思想:类似于插排,不过进行比较和交换的两个数之间距离并不为1,由此可以产生多组序列,希尔排序正是先对各组序列(每组序列的数间距都为h)进行插排,然后减小步长h,再次插排,直至h减至1。由于插排会受输入数组的顺序影响,因此首先进行的大步长插排其实就是对普通插排的加速过程。希尔排序的关键是h的选择。复杂度:时间复杂度:O(n2)O(n2)O(n^2)比较操作耗时为O(n2)O(n2)...原创 2018-06-19 14:25:37 · 208 阅读 · 0 评论 -
插入排序
思想:从选择第一个元素开始直至最后一个元素,将选择元素朝前依次与前面排序好的元素比较,若小于该元素,则将该元素插入。复杂度:时间复杂度:O(n2)O(n2)O(n^2)比较操作耗时为O(n2)O(n2)O(n^2)交换操作耗时为O(n2)O(n2)O(n^2)空间复杂度:O(1)O(1)O(1)特点:不占额外空间运行时间与输入有关,排序性能取决于初始排序程度...原创 2018-06-19 13:57:20 · 183 阅读 · 0 评论 -
选择排序
思想:从第一个元素开始,依次与之后的元素比较,从而找出最小值,并将最小值与第一个值交换,然后对第二个元素重复上一步。复杂度:时间复杂度:O(n2)O(n2)O(n^2)比较操作耗时为O(n2)O(n2)O(n^2)交换操作耗时为O(n)O(n)O(n)空间复杂度:O(1)O(1)O(1)特点:不占额外空间数据移动(交换)次数少运行时间与输入无关...原创 2018-06-19 11:08:47 · 169 阅读 · 0 评论 -
排序算法
关于各类排序算法心得原创 2017-10-13 16:25:52 · 310 阅读 · 0 评论 -
179. Largest Number
最优子结构的应用原创 2017-12-26 20:21:09 · 223 阅读 · 0 评论 -
324. Wiggle Sort II
波动排序原创 2017-12-23 16:15:31 · 313 阅读 · 0 评论 -
148. Sort List--单链表自顶向下归并排序
单向链表的自顶向上归并排序原创 2017-12-21 17:42:36 · 691 阅读 · 2 评论 -
147. Insertion Sort List--单向链表移动
单向链表的插排原创 2017-12-20 10:03:41 · 192 阅读 · 0 评论 -
75. Sort Colors
Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue. Here, we will use the in原创 2017-12-19 17:12:51 · 181 阅读 · 0 评论 -
堆排序
思想:堆排序利用了优先队列的数据结构,其排序方法是将所有数据放入优先队列中,然后依次从堆顶取出元素,放在数组中,完成排序。因此,其核心是优先队列的实现。 优先队列的实现是依靠二叉堆进行的。二叉堆的性质是其两个子节点都要小于等于父节点(不分左右)。对应的有上浮和下沉两个操作。 上浮:当元素比父节点大时交换二者,直至满足元素小于父节点。 下沉:将元素的左右子节点比较,并把元素与较大子节点交换...原创 2018-06-20 10:26:37 · 237 阅读 · 0 评论