AcWing 787.归并排序 题目描述 给定你一个长度为n的整数数列。 请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有整数均在1~109109范围内),表示整个数列。 输出格式 输出共一行,包 ...
分类:
编程语言 时间:
2020-02-04 10:35:43
阅读次数:
76
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 传送门 归并排序的思想//去掉result就是纯归并 class Solution { ...
分类:
编程语言 时间:
2020-02-03 22:21:21
阅读次数:
92
快速排序 算法步骤: 在数列之中,选择一个元素作为”基准”(pivot),或者叫比较值。 数列中所有元素都和这个基准值进行比较,如果比基准值小就移到基准值的左边,如果比基准值大就移到基准值的右边 以基准值左右两边的子列作为新数列,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。 算法分析: ...
分类:
Web程序 时间:
2020-02-03 16:07:17
阅读次数:
102
题目 在?O(n?log?n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 示例 1: 输入: 4 2 1 3 输出: 1 2 3 4 示例 2: 输入: 1 5 3 4 0 输出: 1 0 3 4 5 来源:力扣(LeetCode) 链接:https://leetcode cn.com/pr ...
分类:
编程语言 时间:
2020-02-02 23:45:38
阅读次数:
106
微信公众号:bigsai 前言 在排序中,我们可能大部分更熟悉冒泡排序、快排之类。对归并排序可能比较陌生。然而事实上归并排序也是一种稳定的排序,时间复杂度为O(nlogn). 归并排序是基于分治进行归并的,有二路归并和多路归并.我们这里只讲二路归并并且日常用的基本是二路归并。并且归并排序的实现方式有 ...
分类:
编程语言 时间:
2020-02-02 19:48:33
阅读次数:
100
1. 本人做法,采用了取巧的方法,利用了java的comparartor与自带的sort函数,先拆链表再构建链表,java还是好用啊 2. 递归做法 学! 3. 迭代法(归并排序中的merge过程,逐个比较)这里最好创建一个新的链表,如果在原有的链表(l1或者l2上面操作的话会很麻烦) ...
分类:
其他好文 时间:
2020-02-02 15:45:33
阅读次数:
61
有一道题是链式的:石子归并 加上环怎么办? 断环为链:将长度为n的链复制一份接在后面,环的情况就是长度为2n的链中任意连续的长度为n的链。 ...
分类:
其他好文 时间:
2020-02-02 11:35:41
阅读次数:
52
【思路】 我们 dp[i][j] 来表示合并第 i 堆到第 j 堆石子的最小代价。 那么状态转移方程为 dp[i][j] = min ( dp[i][j],dp[i][k]+dp[k+1][j]+w[i][j]); 其中, w[i][j] 表示把两部分合并起来的代价,即从第 i 堆到第 j 堆石子个 ...
分类:
其他好文 时间:
2020-02-02 11:35:27
阅读次数:
46
归纳 1.时间复杂度为o(n^2) 冒泡排序 选择排序 插入排序 希尔排序 2.时间复杂度为o(nlogn) 快速排序 归并排序 堆排序 3.时间复杂度为线性排序 计数排序 桶排序 基数排序 ...
分类:
编程语言 时间:
2020-02-02 11:33:32
阅读次数:
66
5. 归并排序 ? 两个有序数组合并并不难, 但是归并的思想确实是这个, 但是如何分, 分到何时呢 ? 这个名字含义就是分为 两个阶段执行 先说并吧, 并要求是两个已经排序好了的数组(两个连续数组是位置上也连续) , 比如 , 连续数组 和`3,4 1,2 4`进行排序 , 对于两个已经排序好了的数 ...
分类:
编程语言 时间:
2020-02-02 01:37:57
阅读次数:
99