热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

关于几个算法时间问题

近期学习了《算法导论》一书,后自己整理笔记,遇到一些概念搞晕了,请高人指点。比如几个排序算法的运行时间分析:插入排序:最好情况Ω(n)最坏情况Θ(n^2)平均情况Ο(n^2)归
近期学习了《算法导论》一书,后自己整理笔记,遇到一些概念搞晕了,请高人指点。

比如几个排序算法的运行时间分析:

插入排序:最好情况Ω(n) 最坏情况Θ(n^2) 平均情况Ο(n^2)
归并排序:最好情况Θ(nlgn) 最坏情况Θ(nlgn) 平均情况Θ(nlgn)
快速排序:最好情况Ο(nlgn) 最坏情况Θ(n^2) 平均情况Ο(nlgn)

而之前的《数据结构》一书中都是以Ο(n) Ο(n^2) Ο(nlgn)的形式出现的,到底哪个对,懵了~~~~

5 个解决方案

#1


LZ问这个问题,就知道你一点都没理解各个算法。。。
那就去看每种算法啊,来这问是不是想把高人的回答当标准答案或者是定理背下来呀?
那样有用么?你觉得有意思么?

别的不知道,我只知道什么时候,什么规模该选什么算法。。。

还有插入排序,它的时间主要是花费在移动数据上,折半查找可以忽略,所以时间复杂度计算的是移动次数,所以平均时间发杂读应该是Ο(n^2),可能是你之前看的书写错了,要么就是你记错了。

#2


仔细的看看书吧,咬文嚼字,书上的是真理,别人说的不一定对。呵呵。

#3


同意这种看法,还是要理解算法的原理才是正道啊
引用 1 楼 zhangxfeng112 的回复:
LZ问这个问题,就知道你一点都没理解各个算法。。。
 那就去看每种算法啊,来这问是不是想把高人的回答当标准答案或者是定理背下来呀?
 那样有用么?你觉得有意思么?

 别的不知道,我只知道什么时候,什么规模该选什么算法。。。

 还有插入排序,它的时间主要是花费在移动数据上,折半查找可以忽略,所以时间复杂度计算的是移动次数,所以平均时间发杂读应该是Ο(n^2),可能是你之前看的书写错了,要么就是你记错了。

#4


相信楼主都知道Ω,Θ,Ο,他们代表渐进性相同的一族函数。是一个函数集。Ω代表下界,Ο代表上界,这种表示法不是紧凑的,比如用O(nlgn)代表的算法运行时间实际上可能是 T(n) = Cn,但T(n)属于O(nlgn)。

计算算法的运行时间T(n)要算法的不同运行情况,有最好的情况和最坏的情况和我们期望的平均情况。我们用最坏情况来衡量算法性能。如果不加说明,O代表算法的最坏情况,Ω代表算法的最好表现,如果是Θ集,那么最好情况和最坏情况下的T(n)函数在渐进性上相同。比如快排T(n) = O(n^2)。但是如果加了一定的说明的话,如平均情况下,快排的T(n) = O(nlgn),这时的O仅代表在这种平均情况下得出的T(n)的渐进性。如果不加这个平均情况,这个T(n) = O(nlgn)容易让人误解,因为最坏情况下T(n) = Θ(n^2)。
总之,理解O, Θ, Ω的意义,和算法的运行细节,就可以判断了。

申明:词不达意!有错的话不要被我误导

#5


谢谢各位的点拨,我会踏踏实实的学的!

推荐阅读
  • 社会网络分析学习笔记 - 模块4
    本文探讨了小世界现象及其在社交网络中的应用,包括厄多斯数和培根数的概念。文章还介绍了图的基本表示方法,如边列表和邻接矩阵,并讨论了它们在不同规模网络中的适用性和效率。 ... [详细]
  • 解析Java虚拟机HotSpot中的GC算法实现
    本文探讨了Java虚拟机(JVM)中HotSpot实现的垃圾回收(GC)算法,重点介绍了根节点枚举、安全点及安全区域的概念和技术细节,以及这些机制如何影响GC的效率和准确性。 ... [详细]
  • 在解决ACM竞赛题目或力扣挑战时,通常面临1秒到2秒的时间限制。为了确保程序能够高效运行,C++等语言的代码执行次数建议不超过1千万次。 ... [详细]
  • 吴石访谈:腾讯安全科恩实验室如何引领物联网安全研究
    腾讯安全科恩实验室曾两次成功破解特斯拉自动驾驶系统,并远程控制汽车,展示了其在汽车安全领域的强大实力。近日,该实验室负责人吴石接受了InfoQ的专访,详细介绍了团队未来的重点方向——物联网安全。 ... [详细]
  • 变量间相关性分析
    本文探讨了如何通过统计方法评估两个变量之间的关系强度,重点介绍了皮尔森相关系数的计算及其应用。除了数学公式外,文章还提供了Python编程实例,展示如何利用实际数据集(如泰坦尼克号乘客数据)进行相关性检验。 ... [详细]
  • OpenCV中的霍夫圆检测技术解析
    本文详细介绍了如何使用OpenCV库中的HoughCircles函数实现霍夫圆检测,并提供了具体的代码示例及参数解释。 ... [详细]
  • 本文提供了一种有效的方法来解决当Android Studio因电脑意外重启而导致的所有import语句出现错误的问题。通过清除缓存和重建项目结构,可以快速恢复开发环境。 ... [详细]
  • 网络流24题——试题库问题
    题目描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算 ... [详细]
  • 本文介绍了如何利用OpenCV库进行图像的边缘检测,并通过Canny算法提取图像中的边缘。随后,文章详细说明了如何识别图像中的特定形状(如矩形),并应用四点变换技术对目标区域进行透视校正。 ... [详细]
  • 本文将探讨一个经典算法问题——最大连续子数组和。我们将从问题定义出发,逐步深入理解其背后的逻辑,并通过实例分析加深理解。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文介绍了多维缩放(MDS)技术,这是一种将高维数据映射到低维空间的方法,通过保持原始数据间的关系,以便于可视化和分析。文章详细描述了MDS的原理和实现过程,并提供了Python代码示例。 ... [详细]
  • 本文详细介绍了如何在Spring框架中设置事件发布器、定义事件监听器及响应事件的具体步骤。通过实现ApplicationEventPublisherAware接口来创建事件发布器,利用ApplicationEvent类定义自定义事件,并通过ApplicationListener接口来处理这些事件。 ... [详细]
  • TCP协议中的可靠传输机制分析
    本文深入探讨了TCP协议如何通过滑动窗口和超时重传来确保数据传输的可靠性,同时介绍了流量控制和拥塞控制的基本原理及其在实际网络通信中的应用。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
author-avatar
mobiledu2502916457
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有