数据结构 | (一)算法及算法分析

1、什么是算法?

算法是对特定问题的求解步骤,具有有穷性、确定性、可行性、输入、输出5个重要特性。

2、什么是好的算法?

正确、可读性强、健壮、高效、低存储需求。

3、如何衡量算法的好坏?

(1)时间复杂度

在分析算法的running time时,通常我们并不关心具体的大小,我们更关心running time 的阶数,当input size很大的时候,这个函数的表现如何。

(2)空间复杂度

算法原地工作:程序运行所需的辅助空间相对输入的数据量来说是常数。

4、算法分析的两个主要任务

正确性(不变性 X 单调性) +  复杂度

5、时间复杂度分析举例

分析BFS宽度优先搜索算法的时间复杂度

BFS算法

算法的时间复杂度与输入的数据结构有关:

当输入是邻接表时, 时间复杂度是 O(n + m)(其中n是节点数,m是边数) ;

当输入是邻接矩阵时, 算法时间复杂度为 O( n^2 ) 。

邻接矩阵的时间复杂度分析如下:

BFS时间复杂度分析
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 妈妈:儿子,如果妈妈眼睛瞎了怎么办? 儿子:我会送你去这里最好的医院治疗。 妈妈:如果这里最好的医院治不好怎么办?...
    千里草闲阅读 308评论 0 0
  • 今日份更新使用docker的操作 # 查看docker 容器的进程号 # 首先要启动docker 容器docker...
    Daben_阅读 306评论 0 0
  • 为什么有人没有良心 自私 懒惰到这种地步 家长还在干活就先吃饭 把菜吃光 要么沉迷游戏 喊好几次不吃饭 吃的时候又...
    dear_Sutniuq阅读 210评论 0 0

友情链接更多精彩内容