从原型开始设计一个程序

从原型开始设计一个程序 Step1:得到需求 这一部分往往是口语化的,需要程序员对需求进行进一步的分析
Step2:严格描述问题 严格描述问题是确保算法的确定性的必要条件
可以采用伪代码和文字来对问题进行描述,保证算法的能行性和有穷性
Step3:将问题抽象 问题抽象出来,因为只能解决一个实例的算法并没有什么意义,需要算法程序能够解决同类普遍性问题。第2、3步没有严格的顺序
Step4:列出一个实例,并画出关系图 这一步尤为重要,不同的关系图会形成不同的数据结构以及涉及到不同的算法
Step5:将关系图抽象,设计数据结构 数据结构即包含了数据与数据之间相互关系的结构
Step6:考虑时间复杂度和空间复杂度,设计算法

  • 时间复杂度
    时间复杂度描述了一个算法随着计算规模增大而使用的计算时间,是一个关于计算规模的时间函数,一般用时间函数的同阶无穷小来表示,也就是大‘O’记法,
  • 空间复杂度
    空间复杂度代表算法程序在运算过程中需要占用的内存单元,此函数与时间复杂度类似
Step7:根据实际需求,选择相应算法,可以不是最优但是一定要适合 有些时候并不要求最优解,因为可能需要更大的算力,服务器无法达到,所以需要牺牲一些精确度等等
Step8:设计测试用例,运行程序 【从原型开始设计一个程序】程序编译完成后,并不代表可以发布,要根据实际情况设计测试用例,若未能达到需求或者需要优化则需要更改相应部分的算法或设计更为简洁的数据结构。
Step9:若满足要求则发布程序、否则循环上述步骤

    推荐阅读