根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。 归并排序进行如下迭代操作:首先将原始序列看成 N 个只包含 1 个元素的有序子序列,然后每次迭代归并两个相邻的有序子序 ...
分类:
其他好文 时间:
2019-02-12 01:35:34
阅读次数:
150
离散化加 求逆序数: 求逆序数的方法 一个是归并排序 一个是树状数组 ...
分类:
其他好文 时间:
2019-02-08 21:55:55
阅读次数:
232
题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3141 题意 一个1到n的排列,每次随机删除一个,问删除前的逆序数 思路 综合考虑,对每个数点,令v ...
分类:
编程语言 时间:
2019-02-08 13:08:56
阅读次数:
208
二叉树时间复杂度的训练: T(n) = 2T(n/2)+o(n) nlogN 归并排序 快排:平均nlogN 最坏 n^2 树形展开法 T(N) = 2T(N/2)+O(1) o(n) 二叉树的时间复杂度= N*每个节点的处理时间 前序便利:根左右 中序 左根右 后序:左右根 DFS深度优先搜索:1 ...
分类:
其他好文 时间:
2019-02-07 09:31:06
阅读次数:
120
算法描述: Sort a linked list in O(n log n) time using constant space complexity. Example 1: Example 2: 解题思路:时间复杂度O(nlogn)。写了快排感觉很奇怪,看了其他人答案,发现都是归并排序。 快排代码 ...
分类:
其他好文 时间:
2019-02-06 22:41:27
阅读次数:
221
快要过节了,目前先把代码贴上,后续加上图示和复杂度信息 java package com.jdk8.event.SortTest; public class MergeSortIterate { public static void main(String[] args){ int[] arrs = ...
分类:
编程语言 时间:
2019-02-02 23:07:18
阅读次数:
259
归并排序比较适合大规模得数据排序,借鉴了分治思想。 归并排序原理 自古以来,分久必合合久必分。 我们可以这样理解归并排序,分-分到不能分为止,然后合并。 使用递归将问题一点一点分解,最后进行合并。 分而治之 (merge_sort) 提到递推,我们使用地递推解决问题,首先要分析出递推公式、明确结束条 ...
分类:
编程语言 时间:
2019-02-02 17:29:21
阅读次数:
230
题目:Minimum Inversion Number 链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 分析: 1)先对序列求逆序对的数目,归并排序,线段树,树状数组都可以。 2)考虑到这是一个[0,n)的排列,全体加一,变成一个[1,n]的排列。 ...
分类:
其他好文 时间:
2019-02-01 22:58:34
阅读次数:
258
归并排序原理: 利用分治的思想,通过递归来实现的, java代码: 性能分析: 时间复杂度:O(n*logN) 空间复杂度:O(n) 原地排序:否 稳定排序:是 ...
分类:
编程语言 时间:
2019-01-30 16:07:29
阅读次数:
209
https://leetcode.com/problems/sort-list/ Sort a linked list in O(n log n) time using constant space complexity. Example 1: Example 2: 代码: 归并排序 学到了 FHF ...
分类:
其他好文 时间:
2019-01-30 16:06:42
阅读次数:
125