数据结构与算法学习笔记第二天--什么是算法

来源:互联网 发布:php字符串的拆分 编辑:程序博客网 时间:2024/05/18 01:46

一、什么是算法

算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。一个问题可以由多种算法解决,一个算法也不可能具有解决所有问题的能力。

二、算法的五个基本特征

算法有五个基本特性:输入、输出、有穷性、确定性和可行性。
  • 输入:算法具有零个或多个输入。
  • 输出:算法至少有一个或多个输出(或返回值)。
  • 有穷性:指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每个步骤在可接受的时间内完成。
  • 确定性:算法的每一个步骤都具有确定的含义,不会出现二义性。
  • 可行性:算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成。

三、算法的设计要求

  • 正确性
    算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性,能正确反映问题的需求,能够得到问题的正确答案。
    大体分为以下四个层次:

    • 算法程序没有语法错误;
    • 算法程序对于合法输入能够产生满足要求的输出;
    • 算法程序对于非法输入能够产生满足规格的说明(错误提示信息,提升用户体验);
    • 算法程序对于故意刁难的测试输入都有满足要求的输出结果(代码质量强健;提升系统稳定性)。
  • 时间效率高和存储量低
    即设计的算法应尽可能的降低时间复杂度和空间复杂度,提升算法效率和性能。在设计算法时我们应该尽量思考这两方面的问题。
0 0