【数据结构入门】1.4.1算法与算法分析(持续更新ing)

算法与算法分析

大一0基础 自学数据结构 手写笔记,希望大家支持哈哈
建议大家下点赞收藏 下载思维导图哦 看的清晰一点,内容更详细

算法的定义

对特定问题求解方法和步骤的一种描述,它是指令的有限序列。其中每个指令表示一个或多个操作。总而言之,算法介绍解决问题的方法和步骤。

示例

算法:求一元二次方程的根:

  1. 输入a, b, c。
  2. 判断a是否等于零。如果等于零,判明不是一元二次方程。不等于零,到执行第3步。
  3. 计算$d = b^2 - 4ac$。
  4. 判断d是否等于零。如果d等于零,计算并输出两个相等实根。如果d小于零,输出没有实根。如果d大于零,输出两个不等实根。
  5. 结束。

算法的描述(可以用一下几种方式)

自然语言(英文中文)

示例

算法:求一元二次方程的根:

  1. 输入a, b, c。
  2. 判断a是否等于零。如果等于零,判明不是一元二次方程。不等于零,到执行第3步。
  3. 计算$d = b^2 - 4ac$。
  4. 判断d是否等于零。如果d等于零,计算并输出两个相等实根。如果d小于零,输出没有实根。如果d大于零,输出两个不等实根。
  5. 结束。

流程图在这里插入图片描述

伪代码(类C语言)

算法与程序

算法是解决问题的一种方法或一个过程,考虑如何将输入转换成输出,一个问题可以有多种算法。
程序是用某种程序设计语言对算法的具体实现。

关系

程序 = 数据结构 + 算法
程序通过数据结构描述操作对象
算法根据数据结构设计程序

算法特性

1.有穷性

一个算法必须是在执行有穷步之后结束,且每一步都在有穷时间内完成。

2.确定性

算法中的每一条指令必须有确切的含义,没有二义性。在任何条件下,只有唯一的执行路径,即对于相同的输入只能得到相同的输出。

3.可行性

算法是可执行的,算法描述的操作可以通过已经实现的基本操作执行有限次来实现。

4.输入

一个算法有零个或多个输入。

5.输出

一个算法有一个或多个输出。

算法设计的要求

正确性

算法满足问题要求,能正确解决问题。

  1. 程序中不含语法错误;
  2. 程序对于几组输入数据能够得出满足要求的解;
  3. 程序对于精心选择的、典型、苛刻且带有刁难性的几组输入数据能够得出满足要求的解;
  4. 程序对于一切合法的输入数据都能得出满足要求的结果。

可读性

  1. 算法主要是为了人的阅读和交流,其次才是为计算机执行,因此算法应该易于人的理解;
  2. 另一方面,晦涩难读的算法易于隐藏较多错误而难以调试。

健壮性

指当输入非法数据时,算法恰当的做出反应或进行相应处理,而不是产生莫名其妙的输出结果。
处理的方法,不应是中断程序的执行,而应是返回一个表示错误或错误性质的值,以便在更高的抽象层次上进行处理。

高效性

要求花费尽量少的时间和尽量低的存储最后附上思维导图需要可以自取(附带资源下载的更清晰)

如果对你有帮助,欢迎点赞收藏,你的支持是我持续创作的最大动力!
有什么问题欢迎指出交流,看到就会回复哈。
在这里插入图片描述

posted @ 2025-05-18 21:06  deepcyc  阅读(19)  评论(0)    收藏  举报