数据结构:常见算法的时间复杂度汇总

这篇具有很好参考价值的文章主要介绍了数据结构:常见算法的时间复杂度汇总。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

顺序表

链表

二叉树

图(V是顶点个数,E是边的条数)

1.存储空间:

2.BFS和DFS的时间复杂度

3.最小生成树时间复杂度

4.最短路径时间复杂度

查找的平均查找长度(ASL)

 排序


顺序表

算法操作 时间复杂度 空间复杂度 描述
插入 O(n) \ 需要移动元素,移动结点的平均次数n/2
删除 O(n) \ 需要移动元素,移动结点的平均次数(n-1)/2
按值查找 O(n) \ 指针移动查找对应元素

链表

算法操作 时间复杂度 空间复杂度 描述
头插法创建 O(n) \

插入时间为O(1),总时间复杂度为O(n)

尾插法创建 O(n) \      插入时间为O(1),总时间复杂度为O(n)
按值查找 O(n) \ 指针移动查找对应元素
   按序查找    O(n) \ 指针移动到对应位置
插入 O(1) \ 需要从头查找则花费主要用于查找O(n)
删除 O(1) \ 需要从头查找则花费主要用于查找O(n)

二叉树

算法操作 时间复杂度 空间复杂度 描述
二叉树创建 O(n) O(n)

   类似先序遍历

二叉树遍历 O(n) O(n)      递归遍历操作
二叉排序树插入 O(n) \ \
 二叉排序树删除   O(n) \ \

图(V是顶点个数,E是边的条数)

1.存储空间:

存储结构 存储空间
邻接矩阵

O(n^2)

邻接表

无向图O(|V|+2|E|),有向图O(|V|+|E|)

2.BFS和DFS的时间复杂度

广度优先遍历BFS 深度优先遍历DFS
邻接矩阵存储 O(|V|^2) O(|V|^2)
邻接表存储 O(|V|+|E|)

O(|V|+|E|)

3.最小生成树时间复杂度

普里姆算法 克鲁斯卡尔算法
时间复杂度 O(|V|^2) O(|E|log|E|)

注:普利姆算法不依赖E,适合求解边稠密图的最小生成树;克鲁斯卡尔适合边稀疏而顶点较多的图

4.最短路径时间复杂度

迪杰斯特拉算法 弗洛伊德算法
时间复杂度 O(|V|^2) O(|V|^3)

5.拓扑排序:由于输出每个顶点的同时还要删除以它为起点的边,故拓扑排序的时间复杂度为O(|V|+|E|)

查找的平均查找长度(ASL)

1.顺序查找

数据结构:常见算法的时间复杂度汇总

注:若题目未明确提出是成功还是不成功的ASL,则平均查找长度是成功和不成功的平均值:

        ASL平均 =(ASL成功+ASL不成功)/2

 2.有序的顺序查找

数据结构:常见算法的时间复杂度汇总

3.折半查找 

数据结构:常见算法的时间复杂度汇总

 数据结构:常见算法的时间复杂度汇总

4.分块查找 

数据结构:常见算法的时间复杂度汇总

数据结构:常见算法的时间复杂度汇总

 排序

数据结构:常见算法的时间复杂度汇总文章来源地址https://www.toymoban.com/news/detail-498504.html

到了这里,关于数据结构:常见算法的时间复杂度汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据结构——算法的时间复杂度

    🌇个人主页:_麦麦_ 📚今日名言: 生命中曾经有过的所有灿烂,都终究需要用寂寞来偿还。 ——《百年孤独》 目录 一、前言 二、正文         1.算法效率                 1.1如何衡量一个算法的好坏                 1.2算法的复杂度         2. 时间复杂度      

    2024年02月03日
    浏览(52)
  • 算法的时间复杂度和空间复杂度(数据结构)

    目录 1、算法效率 1如何衡量一个算法的好坏 2算法的复杂度 2、时间复杂度 1时间复杂度的概念 2大O的渐进表示法 2时间复杂度计算例题 1、计算Func2的时间复杂度 2、计算Func3的时间复杂度 3、计算Func4的时间复杂度 4、计算strchr的时间复杂度 5、计算BubbleSort的时间复杂度 6、计算

    2024年02月03日
    浏览(68)
  • 【数据结构和算法】时间复杂度和空间复杂度

    目录   一、前言 二、时间复杂度 2.1时间复杂度表示形式 2.1.1规则: 3.1如何计算时间复杂度 3.1.1线性阶 3.1.2平方阶 3.1.3对数阶 常见的时间复杂度排序: 三、空间复杂度 3.1Java的基本类型内存占用 数据结构和算法是程序的灵魂,这是某位程序员大佬所言,学习了这门,我们便可

    2023年04月09日
    浏览(48)
  • 数据结构与算法-时间复杂度与空间复杂度

    数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 算法就是定义良好的计算过程,他取一个或一组的值为输入,并产生一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。 算法在

    2024年02月07日
    浏览(49)
  • 数据结构与算法—时间复杂度和空间复杂度

    目录 1、什么是数据结构? 2、什么是算法? 3、算法的复杂度 4、时间复杂度 (1) 时间复杂度的概念:  (2) 大O的渐进表示法:  六个例题: (3) 时间复杂度对比:  三个例题:  OJ题分析时间复杂度 5、空间复杂度 (1)常见复杂度对比  (2)OJ题分析空间复杂度 小结 数据结构 (D

    2024年02月07日
    浏览(92)
  • 数据结构--算法的时间复杂度和空间复杂度

    算法效率是指 算法在计算机上运行时所消耗的时间和资源 。这是衡量算法执行速度和资源利用情况的重要指标。 例子: 这是一个斐波那契函数,用的是递归的计算方法,每次创建函数就会在栈区开辟一块空间,递归次数越多,开辟空间越多; 所以, 代码的简洁说明不了算

    2024年02月15日
    浏览(49)
  • 【数据结构与算法篇】时间复杂度与空间复杂度

       目录 一、数据结构和算法 1.什么是数据结构?  2.什么是算法? 3.数据结构和算法的重要性 二、算法的时间复杂度和空间复杂度 1.算法效率 2.算法的复杂度 3.复杂度在校招中的考察 4.时间复杂度 5.空间复杂度  6.常见复杂度对比 7.复杂度的OJ练习   👻内容专栏:《数据结

    2023年04月24日
    浏览(67)
  • 学习数据结构:算法的时间复杂度和空间复杂度

    衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。 时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。 算法的时间复杂度 算法中的基本操作的执行次数,为算法的时间复杂度。 算法的

    2024年04月11日
    浏览(45)
  • 数据结构 | 算法的时间复杂度和空间复杂度【详解】

    数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转

    2024年02月08日
    浏览(56)
  • 【数据结构与算法】1.时间复杂度和空间复杂度

    📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢迎各位大佬指点,相互学习进步! 算法效率分为两种:第一种是时间效率;第二种是空间效率。时间效率又称为时间

    2024年01月20日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包