数据结构与算法<3>——算法和算法分析

本文详细介绍了算法的定义、描述方式以及算法与程序的区别。强调了算法的特性,包括有穷性、确定性、可行性、输入输出等。接着深入探讨了算法效率,特别是时间效率和空间效率,阐述了如何通过渐近时间复杂度来衡量算法的时间性能。总结了算法设计的基本要求,并举例说明如何分析算法的时间复杂度,提到了时间复杂度的不同类型以及计算方法。同时,简要提到了空间复杂度的概念。
摘要由CSDN通过智能技术生成

算法:

1.算法的定义:算法是对待特定问题求解步骤的描述,简单来说,就是计算机中一条一条指令的有限序列,其中每个指令可以表示一个或者多个操作。

2.算法的描述:

NS流程图

         1>.自然语言:英语、中文(就是用文字描述)

         2>.流程图:传统流程图、NS流程图

         3>.伪代码、类语言:类C语言

         4>.程序代码:c、java...

3.算法和程序的区分

                     •算法:算法是解决问题的一个过程或者是一种方法,考虑的是如何将输入转换成输出,一个问题可以有多种算法。

                     •程序:是用某种程序语言一步一步具体实现的

                                        程序=数据结构+算法 

              数据结构通过算法现实操作,算法根据数据结构设计程序。

4.算法的特性

        1.有穷性:步骤和步骤的执行时间是有限的,不是无穷的。

        2.确定性:算法中的每一条指令有明确的含义,没有二义性,在任何条件下,只有唯一的执行路径,(就是相同的输入只能有相同的输出)

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

        4.输入:一个算法可以有0或者多个输入

        5.输出:一个算法有1个或者多个输出

5.算法设计要求

        1>.正确性:程序对精心选择的、典型的、苛刻的且带有刁难性的几组输入数据能够得到满足要求的结果

        2>.可读性:易于的阅读

        3>.健壮性(鲁棒性):当输入非法数据时或者出现意外情况时,算法恰当的做出反应或者进行相应的处理,而不是莫名其妙的输出结果;处理出错算法时,不是中断程序的执行,而应是返回一个表示错误或者错误性质的值,以便在更高的抽象层次上进行处理

        4>.高效性:尽量时间少,存储控股减少。


算法分析:

        一个好的算法首先具备正确性

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值