排序
文章平均质量分 77
排序
-Hello_狂奔的蜗牛
Fly!!!
展开
-
归并排序
目录要点 归并排序的基本思想算法分析 归并排序算法的性能 时间复杂度 空间复杂度 算法稳定性 归并排序和堆排序、快速排序的比较完整参考代码 Java版本参考资料相关阅读要点归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序转载 2017-10-04 23:30:44 · 161 阅读 · 0 评论 -
TimeSort原理介绍
Timsort是结合了合并排序(merge sort)和插入排序(insertion sort)而得出的排序算法,它在现实中有很好的效率。Tim Peters在2002年设计了该算法并在Python中使用(TimSort 是 Python 中 list.sort 的默认实现)。该算法找到数据中已经排好序的块-分区,每一个分区叫一个run,然后按规则合并这些run。Pyhton自从2.3版以来一直采翻译 2017-10-04 14:01:05 · 4458 阅读 · 0 评论 -
计数排序
计数排序之小学生站队排序问题 当大一学习数据结构时,你是否想过,为什么排序一定要进行比较和交换呢?有没有一种的方法,能经过一次观察,就能确定各个元素的顺序?小学生站队问题 假设有一个班级的小学生去操场上体育课,体育老师要求他们按照身高次序站成一队。每个小学生都知道自己的具体身高是多少厘米(假设每个小学生身高都不一样,否则就会为争执位置打架),但每个小学生都不承认别人比自己高,非...转载 2018-07-27 10:36:02 · 210 阅读 · 0 评论 -
1146 Topological Order(25 分)
1146 Topological Order(25 分)提问This is a problem given in the Graduate Entrance Exam in 2018: Which of the following is NOT a topological order obtained from the given directed graph? Now you are sup...原创 2018-07-30 16:53:16 · 478 阅读 · 0 评论 -
图解排序算法之堆排序
堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,将这种逻辑结...转载 2018-07-21 21:14:40 · 168 阅读 · 0 评论 -
冒泡排序,快速排序,归并排序,插入排序,希尔排序,堆排序,计数排序,桶排序,基数排序
选择排序,冒泡排序,快速排序,归并排序,插入排序,希尔排序,计数排序,桶排序,基数排序以上是一些常用的排序算法。选择排序for(int i = 0; i < n; i++) { int minval = a[i]; int minid = i; for (int j = i+1; j < n; j++) { if (a[j] &...原创 2018-07-21 15:01:23 · 611 阅读 · 0 评论 -
1038 Recover the Smallest Number (30)
1038 Recover the Smallest Number (30)(30 分)Given a collection of number segments, you are supposed to recover the smallest number from them. For example, given {32, 321, 3214, 0229, 87}, we can reco...原创 2018-07-20 15:26:44 · 309 阅读 · 0 评论 -
1098 Insertion or Heap Sort (25)(25 分)
1098 Insertion or Heap Sort (25)(25 分)According to Wikipedia:Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. At each iteration, insertion so...原创 2018-07-23 10:32:08 · 502 阅读 · 0 评论 -
表格计算 蓝桥杯
表格计算某次无聊中, atm 发现了一个很老的程序。这个程序的功能类似于 Excel ,它对一个表格进行操作。不妨设表格有 n 行,每行有 m 个格子。每个格子的内容可以是一个正整数,也可以是一个公式。公式包括三种:1. SUM(x1,y1:x2,y2) 表示求左上角是第 x1 行第 y1 个格子,右下角是第 x2 行第 y2 个格子这个矩形内所有格子的值的和。2. AVG(x1,y1:x2,y...原创 2018-05-23 20:08:54 · 496 阅读 · 0 评论 -
拓扑排序
比如人的穿衣服,你必须穿好衣服内衣才可以穿上外套; 也就是说你不可以在穿内衣之前穿外套; 抽象成一个图,然后对应图的点,表示的意思就是,如果一个点的入度不为0 说明它还不能在邻接它之前的点之前显示;**1.用一个队列,首先先把入度为0的节点加入队列 2、然后每次取首节点,然后删去从他出发的边, 并令这些边达到的顶点入度-1, 如果某个点的入度减少为0, 则加入队列 反复2步骤,直到...原创 2018-03-20 21:33:12 · 246 阅读 · 0 评论 -
1098. Insertion or Heap Sort (25)
Insertion or Heap Sort (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue According to Wikipedia:Insertion sort iterates, consuming one input element each repetiti...原创 2018-03-18 10:03:02 · 108 阅读 · 0 评论 -
1089. Insert or Merge (25)
Insert or Merge (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue According to Wikipedia:Insertion sort iterates, consuming one input element each repetition, and gro原创 2018-03-18 09:45:44 · 331 阅读 · 0 评论 -
堆排序
#include <cstdio>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1000000+5;int heap[maxn], n;//对数组[low, high] 范围进行向下调整void downAdjust(int low, int high) {...原创 2018-02-24 23:10:38 · 129 阅读 · 0 评论 -
2-路归并排序的递归实现和 非递归实现
递归版归并排序是基于归并的思想,2-路归并排序的原理就是将要排序的序列两两归并。 举个栗子,将以下的序列从小到大排序: {4,3,2,1} 对于这个序列, 1—–首先分成{4,3} 和{2,1}组内进行单独排序,得到{3,4}和{1,2} 2—– 合并成序列{3,4,1,2} 然后组内再进行单独排序, 得到{1,2,3,4}。 算法结束基于这个简单的思想: 一下给出Java的实现:imp原创 2018-01-25 16:47:20 · 950 阅读 · 0 评论 -
poj 1013
// 解题思路: 总体就是枚举的思路,因为题目中规定了是A-L的12个字符,我们就枚举A-L,对于枚举的每一个字符c,也就是c是假币有两个情况,c是轻的假币或者, c是重的假币。 以上我们可以写出for(char c = A ~ L),然后我们用IsFake()函数来判断,注意IsFake()中的light 参数,如果light == true表示验证c是假的轻币的可能,如果light ==原创 2017-02-10 12:31:20 · 284 阅读 · 0 评论