【发布时间】:2019-12-22 19:31:09
【问题描述】:
最佳情况下冒泡排序的时间复杂度被解释为 O(n) 而不是 Theta(n)?这不是错的,因为最好的情况可以定义为: 最佳情况 = 最快完成时间,选择最佳输入。(例如,排序算法的最佳情况是已经排序的数据。)。 编辑:-我已经看到关于堆栈溢出和其他资源的其他问题,这些问题基于最佳情况下冒泡排序的时间复杂度。他们都将其解释为 O(n),我有疑问为什么最佳情况时间复杂度写为O(n) 而不是 Theta(n)?
【问题讨论】:
-
在最好的情况下,您仍然需要扫描整个输入以确定它是否已排序。
-
不清楚您是说您认为 Theta(n) 是正确的,而不是 O(n),或者其他什么。顺便说一句,当数组已经排序时,并不是每个排序算法都有最好的情况。例如,如果您始终选择第一个元素作为枢轴,则排序数组是快速排序的最坏情况。
-
@kaya3 我的意思是应该写 Theta(n) 而不是 O(n) 进行冒泡排序。
-
@jonrsharpe 您能否详细说明一下,因为扫描整个输入并不能保证 O(n)。
-
Theta(n) 是 O(n) 的子集,所以如果一个函数在 Theta(n) 中,那么它也在 O(n) 中。
标签: algorithm sorting data-structures bubble-sort