数据结构,邓俊辉老师
平台——学堂在线
算法的定义
算法 = 信息处理
借助某种工具,明确、机械、规则
子程序: 一个算法里,包括相对来说更小的问题的一个算法; 或称子算法
子程序实例:尺规计算机—— 均分,也可以实现平行
+回忆,序列Hailston(n) 又名 3n+1 problem
值—— 有穷,无穷
+注意,事实:程序未必是算法
- 死循环,栈溢出
程序的评价
+思考,如何设计、优化算法?
所谓的程序
是你作为人去指挥计算机的途径,也是你和计算机相互沟通的渠道
各个方面评价程序好坏中,最重要的是效率
- 速度尽可能快,存储空间尽可能少
- (algorithms + data structures)X efficiency =
computation
笼统 DSA,不同DSA 性能
学会定量去度量
If you can not measure it, you can not improve it.
Lord Kelvin
问题引入
如何引入理想、统一、分层次的尺度?
Cost 成本
- 最初把注意力更多集中在时间上,忽略存储空间成本
- 问题实例的规模,是决定计算成本的主要因素
max「T(P)| |P| =n」
在所有规模为n的问题实例中,将它们的计算成本进行总体的比较,并取出其中的最大值
+思考,如何反映算法的真正效率?
- 统计实验?
- 忽视规模、类型,scope;
- 忽略不同的程序员,不同硬件体系结构,不同的操作系统;
- 以及硬件磁盘的速度和容量。不同的带宽,不同时刻内存分配的不同大小的资源
学习伽利略——抽象出,一个理性的平台或模型
头脑中,做虚拟的、理想的、反映事物本质的实验
如何做? NEXT BLOG–>