- 博客(8)
- 收藏
- 关注
原创 快速排序和归并排序中一趟的理解(递归和非递归)
引:2019年408中数据结构一道考察快速排序的选择题定位:这道题在考察快速排序中一趟的概念。思路:回想教材(《数据结构》严)里对一趟的定义算法描述:可见第一张图的过程实际上是递归形式实现的快排第一次调用Partition函数产生的结果。然而,我们知道,如果第一次选中的pivot处在了待排序元素最终结果中的中间位置。那么接下来的处理也是递归进行的,如图(a)所示,在第一次调用Patition函数后,元素49被放到了最终位置,之后对49左侧位置元素调用Qsort进行处理
2021-01-12 12:41:09
13219
17
原创 hdu 1232 畅通工程(并查集初步应用)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232初接触并查集,不是特别会用。这道题给我的直观印象是并查集可以用来计算图的连通分量,或者快速查找一个结点是否有父节点。(pre[]数组)前驱都初始化一个点的自身,每join两个元素,pre[]数组就得修正一次。#include #includeusing names
2018-01-30 17:34:46
288
原创 蝌蚪安家
小蝌蚪安家发布时间: 2017年6月13日 14:20 最后更新: 2017年6月13日 14:23 时间限制: 1000ms 内存限制: 128M描述在一个矩形区域内,有些地方有水,有些地方没水。所有相邻的有水的地方会共同组成一个水洼,小蝌蚪想在这块区域中找到一个最大的水洼来安家。输入有多组输入数据,每组第一行包含两个正整数
2018-01-28 11:04:20
584
原创 BFS之寻找字符串
题目大意是给出一个二维字符数组,要求在里面寻找一个特定的字母串(大小写均可以),可以是8个方向相邻。以ABCDE为例子写的时候思路一不小心就往DFS方向偏移了,还好修正了过来,理清思路后,还是比较容易实现的。模板题,不多说。#include#include#include#define M 100using namespace std;char map[M][M];int
2018-01-28 08:47:31
470
原创 CodeForces 723D. Lakes in Berland(不完全)
为了练习,用BFS写的,应用的还不是很熟练..启示:边界条件考虑清楚(判断各种flag)。由于flag成立的等价条件判断错误,这题卡了很久,总而言之,还是要多练习,在搜索过程中的后续状态如何调整判断不清。至于之后的打印,可能实现起来比较复杂点了。看了其他人的代码,发现先遍历判断图的边界比较好写,特殊情况先处理#include#include#include#include
2018-01-27 21:41:22
243
原创 下象棋
描述江湖是什么,对于在象棋界厮杀的QQ来说,江湖就是一个矩阵,他的目标,就是在江湖之中骑着马,从他的位置出发,走到终点。当然,QQ的马也遵从中国象棋中的“马走日”的规则,而且在矩阵中,也会有一些障碍物,马不能跳到障碍物上;如果大钉的马面前有障碍物,即被“别马腿”,那么他将不能跳向有障碍物的左前和右前这两个方向。请问最少需要多少步,大钉才能骑着马跳到终点。输入有多
2018-01-27 14:19:52
518
原创 hdu-1022 Train Problem
思路:火车出栈的序列是“部分”倒序的,可以通过出栈的序列来对应模拟所有火车的进站——出栈次序。注意到一个规律:若火车x已经进站,那么火车1~x-1一定在其之前已经进站。关键在于用栈的思想处理入栈序列。注意标志数组的使用,容器在每次循环中一定要先清空。#include#include#include using namespace std;int main() { int
2018-01-24 20:23:32
215
原创 关于堆排序
堆排序算法,之前看了好久一点头绪都没有,感觉只是零散的代码片段零散的拼在一起,然后就排序成功了。 最近重新回顾了堆排序,终于感觉有些明朗了。 堆排序包涵三个函数,HeapAdjust , CreatHeap , HeatSort。 堆排序和完全二叉树的性质是密切相关的。 二叉树中设叶子结点n个,则二度结点n-1个
2018-01-23 20:04:28
350
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人