![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
faithzzf
这个作者很懒,什么都没留下…
展开
-
括号匹配代码实现--通过栈实现
很久没有看数据结构和算法相关的内容了,今天偶然看到有人问这个问题,就使用C写了一段代码,实现括号匹配。该程序修改下,可以设计成通用的字符串匹配函数。具体看个人是怎么设计的。 偶尔确实需要练练手,不然一些方法真很容易忘记。编写的代码如下。using namespace std;//假定bracketsStr只包含大 中 小括号BOOL BracketsIsMatc原创 2016-06-12 17:44:16 · 2174 阅读 · 0 评论 -
邻接表实现--图的深度优先遍历DFS和广度优先遍历BFS
邻接表实现--图的深度优先遍历DFS和广度优先遍历BFS。原创 2017-10-25 09:38:29 · 2272 阅读 · 0 评论 -
邻接矩阵实现--图的深度优先遍历DFS和广度优先遍历BFS
邻接矩阵实现--图的深度优先遍历DFS和广度优先遍历BFS。原创 2017-09-21 18:46:32 · 3288 阅读 · 0 评论 -
不使用随机数的洗牌算法实现(C++实现)
偶然看到有人讨论不使用随机数怎么洗牌,感觉挺有意思的。其实本质就是要达到随机的效果,这个是开放性的问题,其实思路是很多的,主要看实现的难度或者是否可以实现随机洗牌。 我的思路有如下: (1)最简单而且直接的方法:使用时间戳,由于洗牌算法就是随机交换数组里面的值。运行过程是很快的,因此,必须要使用微秒级别以上的时间精度才行。使用毫秒级别的都不大可行。 (2)麻烦的方法:通过hook,随便获取一串网络通讯数据,然后用里面的数值当前索引。由于每次洗牌都要去获取一串数据,因此也是随机效原创 2017-10-27 14:26:08 · 1212 阅读 · 0 评论 -
软件设计师算法之回溯法--全排列
软件设计师算法之回溯法--全排列。原创 2017-09-16 14:27:18 · 1055 阅读 · 0 评论 -
软件设计师算法之回溯法--8皇后问题
软件设计师算法之回溯法--8皇后问题。原创 2017-09-16 13:34:59 · 670 阅读 · 0 评论 -
软件设计师算法之分治法--快速排序
软件设计师算法之分治法--快速排序。原创 2017-08-25 17:26:21 · 507 阅读 · 0 评论 -
软件设计师算法之分治法--归并排序
软件设计师算法之分治法--归并排序。原创 2017-08-24 17:51:14 · 765 阅读 · 0 评论 -
C++实现哈夫曼编码--构建哈夫曼编码树
静态哈夫曼编码的C++实现。原创 2016-12-29 15:44:23 · 9514 阅读 · 0 评论 -
C++实现哈夫曼编码--使用哈夫曼编码树压缩和解压缩
静态哈夫曼编码的C++实现--使用哈夫曼编码树压缩和解压缩。原创 2017-01-04 10:26:38 · 12907 阅读 · 6 评论 -
C++实现LZ77压缩算法
C++实现LZ77压缩和解压算法。该LZ77的压缩算法为最原始的压缩算法。原创 2017-01-17 20:57:15 · 10122 阅读 · 0 评论 -
二分查找的递归和非递归实现(C++函数模版)
递归和迭代是编程中的基本思想。这里通过递归和迭代实现二分查询。 templateint BinarySearchRecursion(T data[],T element,int start,int end){ if(start end) { return -1; } int mid = (start+end)/2; if(element == data[m原创 2016-08-28 20:29:54 · 927 阅读 · 0 评论 -
邻接表实现--图的拓扑排序
有向图的拓扑排序是基础算法,也是很重要的一个算法。 它的思路如下: (1)统计所有顶点的入度,接着把入度为0的全部入栈或者入队列。 (2)取出栈顶元素,或者队列的首个元素,标记该顶点为"已访问"状态。 接着删除该顶点与其它顶点的联系,即把其它相邻顶点的入度减少1。相邻顶点中,入度减少1之后,如果存在入度为0的新顶点,把新顶点入栈或者入队列。 (3)第二步一直循环处理,知道栈为空或者队列为空。 (4)判断是否所有的顶点都访原创 2017-10-25 18:39:01 · 4130 阅读 · 0 评论