浙大-数据结构公开课-002-连载中...
2018-09-24 本文已影响0人
极客123
算法的定义
算法: 一个有限的指令集合,接受一些输入,产生输出,在有限步骤之后,会进行终止
算法中的指令:
有充分明确的目标
计算机能处理的范围之内
描述应不依赖于任何一种计算机语言以及具体的实现
伪代码: 选择排序算法
void sort( collection test) {
for from 0 to test.length{
从list中每次挑选出一个最小的放到一个新的集合newTest
中,将乱序的test中最小的元素放在newTest集合的尾部位
置
}
}
什么是好的算法?
如何衡量算法的优劣:
空间复杂度: S(n)
根据算法写成的程序在执行时占用的存储单元的长度。这个长度往往
和输入数据的规模有关。空间复杂度过高,有可能导致使用的内存超
限,造成程序的非正常中断。
时间复杂度: T(n)
根据算法写成的程序在执行的时候耗费时间的长度,这个长度往往和
输入的数据规模有关,时间复杂度过高可能导致我们在有生之年都等
不到结果
优秀的程序员设计算法尽可能综合二者复杂度降到最优
时间复杂度渐进表示法 :(资料)
https://www.cnblogs.com/sage-blog/p/3891012.html
Θ记号 渐进确界
ο记号 渐进上界
Ω记号 渐进下界
º记号 非渐进紧确的上界
ω记号 非渐进紧确的下界