《大话数据结构》学习笔记二,对应书中第二章《算法》的内容。主要包括:算法的定义、算法的特性、算法设计的要求、算法的度量方法、函数渐近增长的定义、推导大O阶的步骤、常见时间复杂度所耗时间的大小、最坏情况和平均情况、空间复杂度。 ...
分类:
其他好文 时间:
2018-03-12 01:09:23
阅读次数:
199
1.1 这里直接使用冒泡排序,并设置了变量保证在已经排好的情况下及时终止 void sort(vector<int>& v) { bool flag = true; for (int i = 0; i < v.size() && flag; ++i) { flag = false; for (int ...
分类:
编程语言 时间:
2018-03-10 22:07:47
阅读次数:
275
一、计算模型 1.1 定义: 我们在思考和处理算法的时候是机器无关、实现语言无关的。所有的算法运行在一种“抽象的机器”之上,这就是计算模型。 1.2 种类 图灵机是最有名的计算模型,本课使用更简单更合适的RAM计算模型。 1.3 RAM(Random Access Machine)模型 RAM模型的 ...
分类:
编程语言 时间:
2018-03-08 21:36:27
阅读次数:
304
递推方程的求解 其实这是本人《算法设计与分析》课程回顾的内容整理,用来测试一下cnblogs上的markdown和数学公式支持...... 什么是递推方程? 对于序列$a_0,a_1,a_2, …,a_n$,简记为${a_n }$,一个把$a_n$与若干个$a_i (i 0 and x x: 将C[ ...
分类:
其他好文 时间:
2018-03-06 20:15:06
阅读次数:
331
常用算法设计和优化策略(本蒟蒻不定期更新) 下面是紫书上讲的常用算法设计策略和优化策略: 分治法:将问题分成相同的独立子问题求解。拆分出的问题必须有最优子结构性质(子问题求出的是最优解) 动态规划。本质是:对于一个问题,通过划分阶段,定义状态与状态间的关系,来 分解问题 。利用单阶段问题之间的联系, ...
分类:
编程语言 时间:
2018-03-02 01:20:59
阅读次数:
162
《算法导论》读书笔记之第1章 算法在计算机中的作用 本章是本书的开篇,介绍了什么是算法,为什么要学习算法,算法在计算机中的地位及作用。 算法(algorithm)简单来说就是定义良好的计算机过程,它取一个或一组值作为输入,并产生出一个或一组值作为输出。即算法就是一系列的计算步骤,用来将输入数据转换成 ...
分类:
编程语言 时间:
2018-02-25 14:41:38
阅读次数:
236
2018年,程序开发已经快3年多,在程序开发的路上,学习了很多知识,接触了很多技术,但是都是在浅尝辄止,没有很深入去研究,所以在对程序开发这项即是职业也是爱好的工作中没有达到预期的想法。 2018年,新的年度,新的目标,达成自己的小目标,以下为具体内容: 1、数据结构每日一课。 2、算法设计每日一题 ...
分类:
其他好文 时间:
2018-02-23 00:46:32
阅读次数:
177
uva 1608 不无聊的序列(附带常用算法设计和优化策略总结) 紫书上有这样一道题: 如果一个序列的任意连续子序列中都至少有一个只出现一次的元素,则称这个序列时不无聊的。输入一个n个元素的序列,判断它是不是无聊的序列。n ...
分类:
编程语言 时间:
2018-02-15 17:17:29
阅读次数:
258
一个正规的站点开发,理论上须要一个团队的配合。各自发挥自己的好处。站点需求分析、原型设计、效果图、切图、前台美工、后台代码、算法设计、数据库设计、server配置等等一系列的事情。 一个人想面面俱到这些,还是须要花些时间的。所以对一个刚開始学习的人来说,我的建议是:别管他三七二十一。不是想开发一个站 ...
分类:
其他好文 时间:
2018-02-15 10:30:24
阅读次数:
249
设计模式六大原则 1、开闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。 2、里氏(Liskov)替换原则:所有引用基类(父类)的地方必须能透明地使用其子类的对象。 3、依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象; ...
分类:
编程语言 时间:
2018-02-13 19:53:57
阅读次数:
202