算法导论笔记
衡量算法效率的常用标准是速度,即一个算法得到最后结果所需要的时间。
通过具体的例子,来学习算法知识。
读书的时候,不要错过书中的发散型练习,最好能思考一遍。思考了,你的理解就更深了。
读书就要多多思考,多多提问。在思考中将知识点理解透彻。
衡量效率的指标有时间和空间。一般需要时间少,占用空间少的算法好一些。
当数据量很大很大的时候,高效算法的优势就表现出来了。
时间复杂度由小到大:O(1)<=O(log2 n)<=O(n)<=O(nlog2 n)<=O(n^2)<=O(n^3)<=.........<=O(n^k)<=O(2^n)。
伪代码就是采用最具表达力、最简明的方法,来表达一个给定的算法。甚至直接用英语来表达。
一般考虑算法好坏都是考虑最坏情况运行时间。
数据结构,是一个信息的结构化表示。
基本的结构包括两种,线性结构和非线性结构,线性结构有队列、链表、栈,非线性包括树、图。
线性结构中元素之间存在一对一关系。非线性结构元素之间存在一对多、多对多关系。一对多的比如树,多对多的比如图。
基本的操作包括:结构的生成和销毁;元素进行检索;插入新的数据元素或删除已经存在的数据元素;遍历数据结构中的元素。
时间复杂度比较:O(1)<=O(log2 n)<=O(n)<=O(nlog2 n)<=O(n^2)<=O(n^3)<=.........<=O(n^k)<=O(2^n)。