归并排序 排序动图演示 整体效果: 排序细节: 排序原理: 归并排序就是递归得将原始数组递归对半分隔,直到不能再分(只剩下一个元素)后,开始从最小的数组向上归并排序 1. 向上归并排序的时候,需要一个暂存数组用来排序, 2. 将待合并的两个数组,从第一位开始比较,小的放到暂存数组,指针向后移, 3. ...
分类:
编程语言 时间:
2019-09-27 22:38:01
阅读次数:
99
rank10 T1 平均数 二分答案,让所有的数减去这个答案,求前缀和, 然后验证子序列平均数比这个答案小的的个数是否等于K 只需要找前缀和的逆序对个数即可(归并排序) T2 涂色游戏 70分算法 Dp转移,先考虑对于确定的j个颜色,然后涂上一列的方案数 设g[i][j] 表示涂了i个格子j个颜色有 ...
分类:
其他好文 时间:
2019-09-27 15:05:58
阅读次数:
66
java集合提供的排序算法 Arrays.sort()排序算法 如果数组长度大于等于286且连续性好的话,就用归并排序,如果大于等于286且连续性不好的话就用双轴快速排序。如果长度小于286且大于等于47的话就用双轴快速排序,如果长度小于47的话就用插入排序。 Collection.sort()的排... ...
分类:
编程语言 时间:
2019-09-27 01:18:39
阅读次数:
111
以作者的水平为准 基础算法:枚举——>倍增 差分(前缀和)——>二维 贪心 分治:归并排序(逆序对) 二分答案 二分查找 快速排序——>离散化 递归/递推 搜索:深搜(所有方案),宽搜(最优解) DFS优化:迭代 最优性剪枝/可行性剪枝/搜索顺序 记忆化搜索 折半搜索 A*/IDA* BFS优化:双 ...
分类:
其他好文 时间:
2019-09-26 23:47:06
阅读次数:
194
一 哈夫曼树 1.1 基本概念 + 算法思想 + "贪心算法" (以局部最优,谋求全局最优) + 示例 + 【树论:最优(二叉)数=带权路径最短的树】 + "哈夫曼(树)编码" + 【图论: "最小(代价)生成树" 】 + "普里姆算法(Prim)(加点法,归并点)" + "克鲁斯卡尔(Kruska ...
分类:
编程语言 时间:
2019-09-26 11:41:43
阅读次数:
151
普通二分查找 普通版很简单就不详细总结了 二分查找中位数 题意:给定长度为n的两个有序序列,求两个序列合并后的中位数 直接归并法,找到第(2n+1)/2数时停止并输出答案,复杂度为O(n) 但题目要求logn,我们就得换个思路了; 题目给的是两个有序序列,所以两个序列的中位数都可以O(1)求得,那么 ...
分类:
其他好文 时间:
2019-09-23 15:05:35
阅读次数:
101
Python八大算法的实现,插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序。 1、插入排序 描述 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法 ...
分类:
编程语言 时间:
2019-09-19 21:09:41
阅读次数:
81
/* MergeSort 归并排序 复杂度: n*log(n) */ #include using namespace std; void MergeSort(int a[], int s, int e, int tmp[]); void Merge(int a[], int s, int m, i... ...
分类:
编程语言 时间:
2019-09-15 18:57:08
阅读次数:
100