算法导论及时间复杂度介绍

本文介绍了算法的基本概念,包括暴力求解、分治法等设计模式。重点阐述了算法复杂度,特别是时间复杂度,分析了二分查找在不同情况下的时间复杂度,并通过斐波那契数列的递归与迭代算法举例说明时间复杂度的重要性。最后,讨论了算法思维在解决问题中的应用过程。
摘要由CSDN通过智能技术生成

1 导学

1.1 算法的基本概念

算法设计模式:

  • 暴力求解(Brute force)
  • 分治法(Divide and conquer)
  • 贪婪算法(Greedy approach)
  • 动态规划(Backtracking)
  • 回溯法(Branch and bound)
  • 分支界限法(Randomized algorithm)等

算法:算法是借助计算机解决问题的方法,是有限条确定性指令的序列

算法的性质:输入、输出、确定性、有限性

算法的描述方式:自然语言、数学公式、流程图、伪代码、程序设计语言

算法的评价方法: 正确性、有效性、易理解、易实现、通用性

例子:最大公约数
暴力解法:取min(a,b),从大到小尝试,直到两个数均可被整除。
欧几里得:max%min==0?result=min : result=(max%min和min的最大公约数)

1.2 算法复杂度

算法复杂度分析的三种情形

  • 最好情形(Best case)
  • 最差情形(Worst case)
  • 平均情形(Average case)

例如:二分查找(Binary search)的时间复杂度&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值