数据结构
---Panda
这个作者很懒,什么都没留下…
展开
-
关于堆排序的理解
堆排序是利用二叉树的性质了,最后浮上最顶端的是最大的 然后把最大的放在后面,下次进行减一次的计算。堆排序的第一次要建立大顶堆,让整个序列符合那个规律。规律看书。。堆排序第一次建立堆的过程是一点点调的如序列 40 55 73 12 98 27第一次比73 和27 不变第二次比 55 12 98 选择98 交换 变成 40 98 73 12 55 27 交原创 2016-12-18 18:44:33 · 966 阅读 · 0 评论 -
对于基数排序的理解
基数排序。我的理解是它利用了字典序的原理 想一下字典序的原理。我们首先把个位的按照从小到大排序,之后收回去,再按照十位的从小到大排序 之后再收回去。第一次 把个位数的最小的放在了前面。 第二次 把十位数的最小的放在了前面。第三位百位等等这样 一个数 在这个序列里 个位最小并且十位最小的话,那么这个数一定是最小的数字了。或者说是按照优先级,首先,按照个位的原创 2016-12-18 18:50:33 · 1669 阅读 · 0 评论 -
关于知道后序序列和中序序列确定前序序列
以下是大神的解释 摘自洛谷题解, 比较清晰DEBAFCGEDBFGCA首先这棵树的根是A(后序排列的最后一个),输出A;然后在中序排列中找到A的位置,发现它左右各有三个点,分别是它的左右子树;把中序排列左边三个点和后序排列的前三个点作为左子树去dfs,因为先序排列是中-左-右,所以先走左边;> [L]传入的中序是DEB,后序是E原创 2016-12-18 18:52:40 · 3483 阅读 · 0 评论 -
希尔排序法
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_2_D一种算是优化的插入排序 一般是每次从半数之后的范围进行插入,这样可以减少总的交换量。达到快速的效果但是最后一定要让开始的位置变成1 也就是g数组的最后一个一定要是1#include <bits/stdc++.h>using namespace std;long原创 2017-06-11 20:40:53 · 259 阅读 · 0 评论 -
51nod 1076 2条不相交的路径 tarjan算法
1076 2条不相交的路径基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注给出一个无向图G的顶点V和边E。进行Q次查询,查询从G的某个顶点V[s]到另一个顶点V[t],是否存在2条不相交的路径。(两条路径不经过相同的边)(注,无向图中不存在重边,也就是说确定起点和终点,他们之间最多只有原创 2017-08-11 19:23:40 · 1458 阅读 · 0 评论