由于大三下学期了,快要找工作了,所以最近在复习一些学过的内容,以下是这几天写的数据结构里面的一些常用的算法,仅供参考。不过在平时做项目的时候,建议采用STL和Boost里面现成的东西,而不要自己去实现他们。另外,由于国内外讲解数据结构和算法的书籍很多,内容大多重复,所以笔者并没有自习讲解数据结构 ...
枚举法的本质就是从全部候选答案中去搜索正确的解,使用该算法须要满足两个条件: 能够先确定候选答案的数量。 候选答案的范围在求解之前必须是一个确定的集合。 枚举是最简单。最基础。也是最没效率的算法 枚举法长处: 枚举有 超级无敌准确性。仅仅要时间足够。正确的枚举得出的结论是绝对正确的。 枚举拥有天下第一 全面性,由于它是对全部方案的全面搜索。所以,它可以得出全部的解。 程序优化: 对于枚举算法, ...
2017-05-14 19:09 0 1236 推荐指数:
由于大三下学期了,快要找工作了,所以最近在复习一些学过的内容,以下是这几天写的数据结构里面的一些常用的算法,仅供参考。不过在平时做项目的时候,建议采用STL和Boost里面现成的东西,而不要自己去实现他们。另外,由于国内外讲解数据结构和算法的书籍很多,内容大多重复,所以笔者并没有自习讲解数据结构 ...
数据结构中的排序算法。 排序算法的相关知识: (1)排序的概念:所谓排序就是要整理文件中的记录,使之按关键字递增(或递减)次序排列起来。 (2)稳定的排序方法:在待排序的文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定的。相反 ...
1.栈 栈的核心是LIFO(Last In First Out),即后进先出 出栈和入栈只会对栈顶进行操作,栈底永远为0 1.1概念 栈底(bottom):栈结构的首部 栈顶(top):栈结构的尾部 出栈(Pop):结点从栈顶删除 进栈(Push):结点在栈顶位置插入 取栈顶内容 ...
一、原理解析 快速排序法: 基本思路是,从第一个元素开始,把所有比它大的元素放在它后面,把所有比它小的元素放前面。然后划分它前面和后面的所有元素,分别再做快速排序,直到无法再划分为止。 在以下程序案例中我们使用非递归的方式,并借助栈的数据结构实现。(关于栈的基本介绍,请看上一篇:http ...
深拷贝(deep-copy),区别于浅拷贝,表示复制所有数据,而不是像浅拷贝一般只复制指针。深拷贝的数据不会因原始数据被delete后而消失。 单链式结构可以实现单链表,栈,队列,树等数据结构。掌握了单链式结构的深拷贝,实现其它数据结构的深拷贝就易如反掌了。 单链式结构 ...
第五章《数组》 一、概念 根据数组中存储的数据元素之间的逻辑关系,可以将数组分为 : 一维数组、二维数组、…、n维数组。n维数组中,维数 n 的判断依据是:根据数组中为确定元素所在位置使用的最少的下标个数。例如,二维数组中想唯一确定一个元素的位置,至少需要使用 2 个下标, a[1][1]:行 ...
什么是中心扩散法? 中心扩散法,顾名思义就是以某一个位置为中心,向周围扩散,直到满足条件或到达边界。 Leetcode 5.最长回文子串 题目描述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1:输入: "babad",输出 ...