> 文档中心 > 《数据结构》[02]算法与算法分析

《数据结构》[02]算法与算法分析


算法和算法分析

《数据结构》[02]算法与算法分析

1. 算法的定义

《数据结构》[02]算法与算法分析

2. 算法的描述

《数据结构》[02]算法与算法分析

3. 算法与程序

《数据结构》[02]算法与算法分析

4. 算法特性

《数据结构》[02]算法与算法分析

5. 算法的设计要求

《数据结构》[02]算法与算法分析
《数据结构》[02]算法与算法分析
《数据结构》[02]算法与算法分析
《数据结构》[02]算法与算法分析
《数据结构》[02]算法与算法分析

  • 一个好的算法首先要具备正确性,然后是健壮性,可读性,在几个方面都满足的情况下,主要考虑算法的效率,通过算法的效率高低来评判不同算法的优劣程度。
  • 算法效率以下两个方面来考虑:
    • 1.时间效率:指的是算法所耗费的时间;
    • 2.空间效率:指的是算法执行过程中所耗费的存储空间。
  • 时间效率和空间效率有时候是矛盾的

6. 算法时间效率的度量

《数据结构》[02]算法与算法分析

  • 事前分析法
    《数据结构》[02]算法与算法分析
    《数据结构》[02]算法与算法分析

7. 时间复杂度例题

eg.1

《数据结构》[02]算法与算法分析
for(int k = 0;k < n ; k++)执行了n+1次,因为最后一次判定不小于n才跳出循环(也就是括号里还有一次判定,循环体执行了n次,加上括号里判定不小于n那一次,正好n+1)。
for(int i = 0;i < n ; i++)执行了n+1次,因为最后一次判定不小于n才跳出循环。
for(int j = 0; j< n ; j++)执行n(n+1)次,外层执行n次,本身循环执行n+1次。
y ++执行n×n次:本身执行n次,作为for循环的循环体执行了n次。

eg.2
《数据结构》[02]算法与算法分析
eg.3
《数据结构》[02]算法与算法分析
eg.4
《数据结构》[02]算法与算法分析
级 数 展 开 公 式 : 级数展开公式:

eg.5
《数据结构》[02]算法与算法分析
l o g 函 数 基 本 知 识 log函数基本知识 log
《数据结构》[02]算法与算法分析

《数据结构》[02]算法与算法分析

《数据结构》[02]算法与算法分析
《数据结构》[02]算法与算法分析

8. 算法时间效率的比较

《数据结构》[02]算法与算法分析

9. 空间复杂度

《数据结构》[02]算法与算法分析
《数据结构》[02]算法与算法分析
《数据结构》[02]算法与算法分析

设计好算法的过程

《数据结构》[02]算法与算法分析