分析算法时间复杂度---渐进表示法

本文介绍了算法的基本概念,强调了学习算法的重要性,并详细讲解了算法的5个特征。重点讨论了算法复杂度分析,特别是渐进表示法,包括大O、大Ω和大θ记号的定义、解释及其应用场景。通过理解这些概念,可以帮助优化算法的时间效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前置疑问

  • Q1、为什么要学习算法
  • Q2、满足什么条件才能说这是一个好算法
  • Q3、如何分析算法

二、学习内容

1、什么是算法

  • 算法不一定是程序,只有当用计算机程序是设计语言描述时,才是程序。
  • 解决一类问题的一种方法,方法可能很多。
  • 严格的说法为:一个算法是对特定问题求解步骤的一种描述,它是指令的有限序列。
  • 举例:比如计算Fibonacci数列,可以用递归、迭代这种方法,在此方法上用一些思想比如动态规划,提高算法的时间复杂度。在设计该算法的过程中,自然而然的引出算法的5个特征和算法复杂度的概念。

2、算法的5个特征

  • 输入:算法可以有零个输入或多个输入。
  • 输出:设计的一算法至少满足一个输出。
  • 确定性:这里是指写程序的过程中,每条指令都是有确切的定义,不会产生二义性。
  • 能行性:在保证确定性后,确保每条指令都是可以通过有限次来完成的。举个例子1 / 3 实际上用代码写出来是0.33333,但是这不是算法中能行性的解释。该特征是想说在计算1/3时,实际上是0.33333……有无穷个三,是不能通过有限次来完成的。
  • 有穷性:算法在经过有限步骤后能会终止。程序不一定就会终止,比如设计操作系统是一个大程序,只要计算机一直开机,就会一直运行下去。但是算法必须要终止,必须具备有穷性。

3、为什么学习算法呢(A1,answer 1)

  • 如果想写出优秀的代码,必须具备良好的算法计基础。算法是计算机科学的基础,是程序的基石。只要在计算机领域中,内功就是数学和算法,无论时代如果演变,内功不会被淘汰的。
  • 美国计算机科学家克努特(D.E. Kn
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值