首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >气泡排序的平均时间复杂度解释

气泡排序的平均时间复杂度解释
EN

Stack Overflow用户
提问于 2015-03-14 15:39:20
回答 1查看 1.8K关注 0票数 1

我知道气泡排序具有平均时间复杂度O(n^2)。有人能解释如何计算这种复杂性吗?我通常只看到人们说这是平均的复杂性,但我不知道为什么。(换句话说,数字从1到n的随机排列的平均复杂度是多少)

EN

回答 1

Stack Overflow用户

发布于 2015-03-14 15:51:10

如果复杂度为O(n^2),这意味着算法必须对输入的两个元素的每一个组合执行某种操作。

首先,请注意,Bubble排序比较相邻的项目,并在它们出现故障时交换它们。

在最佳情况下,气泡排序是O(n)。这时列表已经排序了。它可以通过列表一次,并且只需要将每一项与其邻居进行一次比较,然后才能确定它已经排序。

O(n^2)是气泡分类的最坏情况。这是当输入列表已经被反向排序时。考虑一下算法如何将第一个项从索引0移动到它在索引n-1中的排序位置。它必须将该项目与其他每一项进行一次比较(n次操作)。它对每个项目重复这个过程,因此O(n^2)。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29050765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档