泡泡运行时/简单排序

时间:2011-10-31 13:06:09

标签: sorting data-structures runtime theory

在课堂上,简单排序被用作我们对O(N)运行时的第一个定义......

但是因为它每次运行时都会经历一次较少的数组迭代,所以它不会更像是......

运行时气泡=总和(i = 0,n,(n-i))?

并且不仅是一个接一个地运行的最大进程计入渐近分析,这将是N次迭代,为什么定义这种类型不是O(N)?

3 个答案:

答案 0 :(得分:1)

我不确定你(或你的教授)在哪里得到冒泡排序为O(n)的概念。如果您的教授已经保证O(n)排序算法,那么尝试为其申请专利是明智的: - )

根据它的本质,泡沫排序是O(n 2 )。

那是因为它必须完整传递整个数据集,才能正确放置第一个元素。

然后第二次传递N - 1元素以正确放置第二个元素。第三次传递N - 2元素以正确放置第三个元素。

依此类推,有效地结束接近N * N / 2次操作,删除多余的0.5常量,为O(n 2 )。

答案 1 :(得分:1)

1 + 2 + ... + N的总和为N*(N+1)/2 ...(高中数学)......当(N^2)/2进入无穷大时,接近N。经典O(N^2)

答案 2 :(得分:0)

冒泡排序的时间复杂度为O(n ^ 2)。 在考虑复杂性时,只考虑最大的表达式(但不是因子)