- 博客(14)
- 收藏
- 关注
原创 数据结构研究之十二 高等动态规划法
1.硬币问题a.题目:给定面值不同的m种硬币,求支付n元时的最少硬币数,各硬币可以重复使用b.核心思路:关键在于使用T[i]j[j]表示用第i种硬币支付j元的情况,这表示是否使用第i种硬币c.代码://// Created by 叶子 on 2018/2/8.// 硬币问题//#include "iostream"using namespace std;static const ...
2018-02-13 09:40:41 193
原创 数据结构研究之十一 高等图算法
1.所有点对间的最短路径a.定义:指以图G=(V,E)为对象,求G中每两点之间最短距离的问题b.核心:关键在于判断在经过中间点与不经过中间点之间的两者距离的最小值,可用弗洛伊德算法求解c.代码: //// Created by 叶子 on 2018/2/6.// 使用弗洛伊德算法计算所有点对间的最短路径//#include "iostream"#include "algorithm"...
2018-02-11 14:12:40 221
原创 数据结构研究之十 高等数据结构
1.互质集合:a.定义:Disjoint Sets是一种用互质集合对数据进行分类管理的数据结构b.代码://// Created by 叶子 on 2018/2/6.// 互质的集合//#include "iostream"#include "vector"using namespace std;class DisjointSet{public : vector<...
2018-02-09 09:16:11 249
原创 数据结构研究之九 图
1.图的种类:a.有向图,无向图,加权有向图,加权无向图b.连接两个顶点u,v的边记作e=(u,v)c.不存在环的有向图称为DAG2.图的邻接矩阵:a.优点:可以通过M[u][v]直接引用边(u,v),因此只需要常数时间(O(1))即可确定顶点u和顶点v的关系;只要更改M[u][v]只就能完成边的添加与删除,简单且高效b.缺点:消耗的内存空间等于顶点数的平方。如果图的边数较少,就会浪费较大量的内存...
2018-02-08 22:14:31 251
原创 数据结构研究之八 堆
1.堆:a.如果所有叶结点的深度相同,且所有内部结点都有两个子结点的二叉树,被称为完全二叉树。如果此二叉树的各结点键值是按此树的层级依次自左向右排列,则此二叉树被被为二叉堆。 b.性质:最大堆性质:结点的键值小于等于其父结点的键值最小堆性质:结点的键值大于等于其父结点的键值2.完全二叉树:a.代码实现://// Created by 叶子 on 2018/2/4.// 二叉堆//#inc...
2018-02-08 16:09:09 180
原创 数据结构研究之七 二叉搜索树
1.二叉搜索树的插入:a.题目:向二叉树中插入合适的节点b.要点:要使二叉搜索树保持良好的平衡,才能降低插入元素操作的复杂度为O(logn)。c.代码://// Created by 叶子 on 2018/2/4.// 有序二叉树的插入//#include "cstdio"#include "cstdlib"#include "string"#include "iostream"...
2018-02-08 14:32:05 194
原创 数据结构研究之六 树
1.树:a.简介:树是由结点及连结结点的边组成。有根树的节点之间有父子关系。2.二叉树:a.简介:如果一颗树有1个根结点及所有结点的子结点数都不超过2,那么此树被称为有根二叉树。 b.二叉树可以递归地进行定义。c.代码:二叉树的表达//// Created by 叶子 on 2018/2/2.// 有根树的表达//#include "iostream"using namespace st...
2018-02-08 14:08:41 232
原创 数据结构研究之五 高级排序
1.归并排序 a.步骤提要:将原有数组分割平分成两个数组,然后分别排序。将排好序的局部数组整合成一个数组,然后递归执行此过程 b.过程://// Created by 叶子 on 2018/1/27.// 归并排序//#include "iostream"using namespace std;#define MAX 500000#define SENTINEL 20000000...
2018-02-08 11:44:09 167
原创 数据结构研究之四 递归
1.递归:递归就是把一个问题拆分成两个或多个更小的问题,先求出每个局部问题的解然后再将结果整合。例题:计算长度为n的数列中是否能加起来到得到某个指定值。//// Created by 叶子 on 2018/1/27.//#include "stdio.h"int N,a[50];int solve(int i,int m){ if ( m == 0 ) re
2018-02-07 20:34:12 177
原创 数据结构研究之三 搜索
1.线性搜索:向线性搜索中引入标记,可以将算法效率提高数倍。//// Created by 叶子 on 2018/1/21.//#include "stdio.h"int search(int A[],int n ,int key){ int i = 0 ; A[n] = key; while ( A[i] != key) i ++; retur
2018-02-04 21:34:58 180
原创 数据结构研究之二 栈、队列、链表
一、理论提要:1. 栈的要点:环形缓冲区。视"栈"为一个环,这样就可以轻易的执行入栈和出栈的操作2.用数据结构实现队列时,关键在于如何有效利用内存3.双向链表:在向双向链表中添加元素时,只需要改变几个指针的指向4.双向链表的特点:插入快但是检索慢5.用C++ stl实现栈6.用C++ stl的queue关键字来实现队列7. stl中的list:(双向链表)既可以像v
2018-02-04 21:23:35 160
原创 20分钟读书之三 马上去做,当天做好
书上有写,要迅速而’有力的’实现。特别是在事业开始的时候,就是要全力以赴,就像某公司的职员,一月只休两天,天天忙到十点多,我想,能支持他们这么努力奋斗的,绝不仅仅是做为一个小职员的工资。我想,肯定是能够在这个工作中得到很多’远胜于’其他职位的能力的增长,并且,这份事业本身,应该也有比挣钱更为远大的情怀。就像另一个火遍全国的产品,那个创造它的人,为了这产品,时常在办公室里通宵工作,努力的程度,我想可
2018-01-24 14:16:58 176
原创 数据结构研究之一 排序
一、理论摘要:1.编程时要考虑极端情况,保证程序在任况情况下都能正常运行2.可以参考其他用户公开的源代码提高自己的实力3.注册一个在线评测的网站4.算法是运算法则,就是“达到某种目的的步骤”。5.运算效率和内存使用量是算法选择最重要的标准。6.时间复杂度是和空间复杂度是时评估的标准。7.插入排序:只把数列中比当前数据大的,向后移动(与当前值交换位置)。其优势在于能处理相对有序的数据。8.冒泡排序:
2018-01-17 23:01:00 219 2
原创 20分钟读书之一 软实力与结构
写文章要先定结构,画画也是如此。作任何规划都是如此。都要结构好框架,然后再向里填,而不是从细节开始。虽然从细节开始更容易发挥灵感,更容易作出更有创造性的作品,可是,也相对会缺乏很多理性,也需要更深厚的知识基础。 软实力是成功的重要基石之一,但需要很长的时间来修行,比如英语和数学。那种扎实的修行,不仅仅是提高的是技术实力的本身,还是那种’安坐不动’的本领。那是很令人钦佩的。并且...
2018-01-17 00:51:45 178
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人