编译原理笔记(1) 因为参加了CCF的认证考试,加之这假期事情比较少,所以决定静下心来学习几个算法,按照CSP网站上的题目去做,第二道题便是多项式求和。以前在数据结构课上,便了解过多项式求和利用的是栈这个数据结构。不过一直以来遇到需要自己实现的数据结构,我便有点犯怵。不过这次既然决定学习了,所以便决定解决这个问题。 要求如下: ‘+’、‘-’、‘x’、‘/’ 分别表示加减乘除四个基本操作 ‘(’、‘)’分别表示左右 2019-09-14 笔记 #算法 #C++
数据结构:基础部分 算法: 算法是规则的有限集合,是为了解决特定问题的方法 特性: 1.有穷性、2.确定性、3.可行性、4.零或多个输入、5.一或多个输出 设计要求: 1.正确、2.可读、3.健硕、4.效率与空间 算法效率的度量: 算法中基本操作重复执行的次数记作:T(n)=O(f(n)),称为时间复杂度 一般来说他是最深层循环语句的执行次数的近似。 例如: 123456789for (i=2;i<=n;i++ 2019-09-14 笔记 #算法 #C++
数据结构:线性表(1) 线性结构特点: 1.存在唯一的第一个“数据元素”。 2.存在唯一的最后一个“数据元素”。 3.除第一个元素外,集合中元素存在唯一后继,除最后一个元素外,集合中元素存在唯一前驱。 线性表: 1.一个线性表是n个数据结构的有序集合 2.线性表中数据元素的个数称为线性表的个数,n=0时称为空表 线性表基本操作: 结构初始化 InitList(*L) 操作结果:构造一个空的线性表 L 销毁结构 Destr 2019-09-14 笔记 #算法 #C++
数据结构:线性表(2) 顺序存储: 以元素在计算机内的“物理位置”相邻来表示线性表中的数据元素的逻辑关系。 并以表中第一个元素的存储位置作为线性表的基地址。 LOC(ai ) = LOC(ai-1 ) + C LOC(ai ) = LOC(a1 ) + (i-1)×C 线性表顺序存储结构的特点 1.逻辑上相邻的元素,其物理位置也相邻; 2.可随机存取表中任一元素; 3.必须按最大可能长度预分存储空间,存储空间利用率低, 2019-09-14 笔记 #算法 #C++
数据结构:线性表(番外) 静态链表: 有时可以借助一维数组来表示线性链表 12345678//------线性表的静态单链表存储结构-------#define MAXSIZE 1000typedef struct{ ElemType data; int cur;}component,Slinklist[MAXSIZE] 数组的一个分量表示一个结点,同时用游标(cur)代替指针指示结点在数组中的位置。在 2019-09-14 笔记 #算法 #C++
最短路径 计算图的最短路径有几种经典的算法: 弗洛伊德(Floyd)算法 迪杰斯特拉(Dijkstra)算法 贝尔曼福德(Bellman-Ford)算法 SPFA 算法 弗洛伊德算法 弗罗伊德算法的思想来自于动态规划。 基本思路为: 我们知道若给定任意结点 A、B,若想使两点之间的距离减小只有引入第三个点。 首先引入 结点 1 ,是否能使任意两个结点之间距离缩短呢?若能则更新距离。接着引入 结点 2 2019-09-14 笔记 #算法 #C++
百度竞价排名小工具 众所周知百度盈利的一个很重要的途径是广告的竞价排名 商家想要向受众推销自己的产品,可以借助百度这样一个平台,但百度的竞价排名并不是一成不变的,商家想要实时观察百度对自己产品的推广情况,我作为爬虫技术的入门者,课外时间和自己的同学开发了这样的一个小工具。 该工具借助python的requests库以及lxml解析库实现主要功能,通过tkinter库实现图像界面,threading库实现多线程。同时 2019-09-14 笔记 #爬虫 #Python
Iverilog & GTKWave 一直都因为太过懒惰,没有更新网站的文章。 正好最近学校小学期的任务是,进行VerilogHDL语言的学习,需要安装可以编译该语言的软件,课上学习使用的vivado,当时学的时候就是云里雾里,现在需要用到了,打算在自己的电脑上安装一个,看到软件大小10.4G,果断放弃。 一顿搜索引擎,发现大家与我意见一致,vivado对我们来说确实是屠龙刀了。 更好的选择是 Iverilog 加上 GTKWave 2019-09-14 杂 #软件
谱聚类初探 本学期初参加了我校的一个大学生科技活动。 导师甩给我的课题是:“谱聚类算法”,我自己选择的应用方向是“图像分割”。 在网上大量浏览相关帖子后,终于对该算法有了一个大概的掌握。 https://www.cnblogs.com/pinard/p/6221564.html 个人觉得上面这篇博客对算法总体的阐述比较好。 可以作为了解该算法的一篇入门文章。 所谓聚类,如名字一样,就是将杂乱无章的数据,按照彼 2019-09-10 笔记 #Python #算法
关键路径 室友是信息与计算科学专业的学生,他们的小学期项目是实现老师所给的算法题目中的一个。我给他选择的题目是计算==关键路径==。 这个算法本来在我所学的数据结构课上,不属于要求可以代码实现的算法中,但是我了解过计算方法,所以觉得实现起来还算简单。 本问题的数据结构为有向无环图,弧的起点为先决事件,终点为后续事件,弧的权重为事件的执行时间。 本问题还需明确的概念有: 事件的最早执行时间:由于有的事件的先 2018-12-12 笔记 #算法 #C++