Java 什么';为不同的数据结构查找n/2最小值的最坏情况复杂度是多少?

Java 什么';为不同的数据结构查找n/2最小值的最坏情况复杂度是多少?,java,time,complexity-theory,big-o,Java,Time,Complexity Theory,Big O,对于不同的数据结构,例如大小为n的链表、数组(已排序/未排序、树等),在每个数据结构中查找n/2个最小值的最坏情况时间复杂度是多少? 它是否与查找操作的复杂性相同 编辑:那么,这些数据结构的复杂性是什么? 未排序的链表、未排序的数组、散列树和哈希表?不一定。例如,对于已排序的数组,您可以在恒定时间内找到n/2个最小值。这完全取决于数据结构,例如,它是否已排序 如果你考虑一个平衡树,找到N/2最小值将是…“所有的值到根的左边”< /P> 你不能把它概括得太多,它完全取决于数据结构。如果不指定算法,

对于不同的数据结构,例如大小为n的链表、数组(已排序/未排序、树等),在每个数据结构中查找n/2个最小值的最坏情况时间复杂度是多少? 它是否与查找操作的复杂性相同

编辑:那么,这些数据结构的复杂性是什么?
未排序的链表、未排序的数组、散列树和哈希表?

不一定。例如,对于已排序的数组,您可以在恒定时间内找到n/2个最小值。

这完全取决于数据结构,例如,它是否已排序

如果你考虑一个平衡树,找到N/2最小值将是…“所有的值到根的左边”< /P>


你不能把它概括得太多,它完全取决于数据结构。

如果不指定算法,或者至少不指定数据结构,就不可能指定问题的最坏情况复杂性。如果不为中间存储使用更合适的结构,有些数据结构绝对是一场噩梦e、 例如,堆栈比数组更难排序,因为不能随机交换元素


将其与算法相结合,例如,你可以得到一些非常令人印象深刻的(因为没有更好的词)最坏情况复杂度数字…

好吧,这取决于具体的数据结构。它在O(n)内存和O(n*log(n))中非常简单通过将所有内容插入到有序列表中,无论原始数据处于何种数据结构中,时间都是可行的任何数据结构上的时间,也支持使用中值算法在线性时间内枚举每个元素。我相信问题是处理一般情况。我将重新表述:可以达到的最佳复杂性是什么?排序始终可以在O(nlogn)时间完成。任何数据结构都可以在O(n)时间内遍历所以它可以在O(n)时间内复制到数组中,然后应用排序。