写道
程序=算法+数据结构
congdepeng 写道
特定问题的算法指标=时间+空间+算法复杂度+数据结构复杂度
这里,空间指程序运行占用的资源。
我觉得对于指定的问题求解,“时间+空间+算法复杂度+数据结构复杂度”趋向于一个固定值。
其中时间+空间是为机器考虑的,算法复杂度+数据结构复杂度是为程序员的心情考虑的。
我现在简单的拟定一个分值:(如果为负的,说明更简单,时间更短,空间更少)
1分简单,时间短,空间少
2分中等,时间中等,空间中等
3分复杂,时间长,空间大
比如,我要从一个集合里面查找出一个指定的值。
A. 现在数据结构选取数组,结构复杂度较低 得分1。
算法复杂度也较低,就是循环遍历比较 得分1。
时间较长,时间t和集合长度n成正比 t=f(n) 得分2
空间占用正常 得分2。
x=1+1+2+1=5
B.现在数据结构选取二叉树,结构复杂度高 得分3
算法复杂度高, 得分2。
时间较短 得分-2 (时间t不会因为集合长度n增长而暴涨)
空间占用正常 得分2。
x=3+2-2+2=5
以上为本人昨天晚上看书的心得,如果有人感兴趣,可以一起讨论一下,不当之处,还望不吝赐教。