温馨提示:阅读完本文大概需要2.5分钟
1、写在前面
程序=算法+数据结构,这个等式大概可以说明数据结构与算法之间的关系了吧。
2、简介
算法在计算机中表现为指令的有限序列,且每条指令表示一个或多个操作,是解决特定问题求解步骤的描述。
3、基本特性
(1)输入输出:0个或多个输入,但是必须至少有一个输出。
(2)确定性:也就是说算法在一定条件下,不会出现二义性,即相同的输入,必是相同的输出。
(3)有穷性:不会出现死循环,并且在时间上必须是可接受的,即一个十年才能结束的算法,是没有任何意义的,尽管在数字上确实有结束点。
(4)可行性:你写的每一条指令(指令意思见简介),都能够执行且在有限次数中完成。
4、设计要求
(1)正确性:差不多就是基本特征的统称吧,在有输入输出且无歧义能够在可接受时间和有限次数的情况下得出正确答案。
(2)可读性:要想成为一名被别人称赞的优秀程序员,自己写的程序,必然需要便于别人阅读与理解,这样不仅可以“授人以渔”,还能起到“抛砖引玉”的效果。
(3)健壮性:对异常的处理能力。
(4)时间效率高且存储量低:效率高且占用内存少,但是吧,毕竟“鱼与熊掌不能兼得”,所以需自己权衡,择优使用。
5、时间复杂度(注:记法用大O())
根据所耗时间大小排序:O(1)O(Logn)O(n)O(n*Logn)O(n^2)O(n^3)O(2^n)O(n!)O(n^n)
6、写在末尾
算法的评估,推荐使用事前分析估算方法,最终选择合适的设计算法。
欢迎分享与转载,转载请标明出处。
北京什么时候治疗白癜风比较好白癜风的症状及治疗