算法和算法分析

本文详细介绍了算法的定义、描述方式以及算法与程序的区别。重点探讨了算法时间效率的度量,包括两种度量方法,并阐述了渐进时间复杂度的概念,以及如何进行空间复杂度分析。通过对算法时间复杂度的分析,可以评估和优化算法的性能。
摘要由CSDN通过智能技术生成

目录

一、算法的定义

二、算法的描述

三、算法与程序

四、算法时间效率的度量

1.算法时间效率

2.两种度量方法

五、算法时间复杂度的渐进表示法

1.数量级

2.分析算法时间复杂度的基本方法

3.渐进空间复杂度

4.算法要占据的空间


一、算法的定义

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

简而言之,算法就是解决问题的方法和步骤。

二、算法的描述

自然语言:英语、中文;

流程图:传统流程图、NS流程图;

伪代码(类语言):类C语言;

程序代码:C语言程序;JAVA语言程序。

三、算法与程序

算法:输入转换为输出,一个问题可有多种算法。

程序是由某种程序设计语言对算法的具体实现

算法的特性:有穷性、确定性、可行性、输入(0个或多个)、输出(1个或多个

一个好的算法应具备正确性、健壮性和可读行。

四、算法时间效率的度量

1.算法时间效率

算法时间效率是依据该算法编制的程序在计算机上执行所消耗的时间来度量的。

2.两种度量方法

①事后统计(测算

②事前分析(估算):

算法运行时间=一个简单操作所需的时间*简单操作次数

算法运行时间=∑每条语句执行次数(语句的频率)*该语句执行一次所需的时间

五、算法时间复杂度的渐进表示法

1.数量级

为了便于比较不同算法的时间效率,我们仅比较它们的数量级

算法的渐进时间复杂度(时间复杂度):即数量级

2.分析算法时间复杂度的基本方法

1.找出语句频率最大的那条语句作为基本语句;

2.计算基本语句的频率得到问题规模n的某个函数f(n);

3.取其数量级用符号“o”表示。

3.渐进空间复杂度

空间复杂度:算法所需存储空间的度量。

记作:S(n)=O(f(n))        其中n为问题规模(或大小)

4.算法要占据的空间

算法本身要占据的空间:输入/输出,指令,常数,变量等。

算法要使用的辅助空间

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值