演算法 - 算法与算法分析

本文详细介绍了算法的定义、描述方式,包括自然语言、流程图、伪代码等。讨论了算法与程序的区别,并概述了算法的五大特性。接着,深入探讨了渐进表示法,如Big-O、Omega、Theta等,以及它们的性质和常见函数。最后,文章阐述了算法分析中的时间效率和空间效率,强调了渐进时间复杂度和空间复杂度的重要性。
摘要由CSDN通过智能技术生成

一,算法

1,算法的定义

  • 对特定问题求解方法和步骤的一种描述,他是指令的有限序列。其中每个指令表示一个或多个操作。

2,算法的描述

  • 自然语言:英语,中文
  • 流程图:传统流程图,NS流程图
    在这里插入图片描述
  • 伪代码(类语言):类C语言

3,算法与程序

  • 算法是解决问题的一种方法或一个过程,考虑如何将输入转换为输出,一个问题可以拥有多种算法
  • 程序是用某种程序设计语言对算法的具体实现。
    程序 = 数据结构 + 算法
    – 数据结构通过算法实现操作
    – 算法根据数据结构设计程序

4,算法的五大特性

  • 有穷性
    一个算法必须总是在执行有穷步骤之后结束,且每一步都在有穷时间内完成。
  • 确定性
    算法中每一条指令必须有确切含义,没有二义性,在任何条件下,只有唯一的一条执行路径,即对于相同输入只能得到相同输出。
  • 可行性
    算法是可执行的,算法描述的操作可以通过已经实现的基本操作执行有限次来实现。
  • 输入
    零个多个输入。
  • 输出
    零个多个输出。

5,算法的设计要求

  • 正确性(Correctness)
    – 对于精心选择的、典型的、苛刻且带有刁难性的几组输入数据均能的出满足要求的结果
  • 可读性(Readability)
    – 易于人的理解
  • 健壮性(Robustness)
    – 当输入非法数据时,做出且当反应
  • 高效性(Efficiency)
    – 花费时间小,尽量低的存储需求

二,渐进表示法(Asymptotic notation)

五种渐进表示方法
在这里插入图片描述
在这里插入图片描述
L:洛必达法则((L’ Hospital Rule)
渐进表示法的定义
在这里插入图片描述
asymptotic tight bound:渐近紧密界

Big-O(Upper bound of f(n))

在这里插入图片描述
以定义来说明范例
在这里插入图片描述

Omega(Lower bound of f(n))

在这里插入图片描述
以定义来说明范例
在这里插入图片描述

Theta (tight bound)

在这里插入图片描述
以定义来说明范例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值