java中具有最小时间复杂度的排序

java中具有最小时间复杂度的排序,java,algorithm,sorting,Java,Algorithm,Sorting,我是java新手,我必须对数组进行排序,排序顺序为10^6。java中可用的排序方法的时间复杂度是多少。应该使用哪种排序算法 假设您对数据没有其他知识,并且必须使用通用排序方法,最佳的理论就地排序算法是O(n*log(n))。Arrays.sort方法应该使用其中的一种,并且是您在没有更多信息的情况下的最佳选择 如果您愿意使用大量内存,可以使用非就地排序,如基数或计数。它们可能比n*log(n)快,有些快到O(n),但可能使用O(n)或更差的内存。如果您知道数据具有特殊属性(例如,它几乎已经被排

我是java新手,我必须对数组进行排序,排序顺序为10^6。java中可用的
排序方法的时间复杂度是多少。应该使用哪种排序算法

假设您对数据没有其他知识,并且必须使用通用排序方法,最佳的理论就地排序算法是O(n*log(n))。Arrays.sort方法应该使用其中的一种,并且是您在没有更多信息的情况下的最佳选择


如果您愿意使用大量内存,可以使用非就地排序,如基数或计数。它们可能比n*log(n)快,有些快到O(n),但可能使用O(n)或更差的内存。如果您知道数据具有特殊属性(例如,它几乎已经被排序),则插入排序或类似算法可能比O(n*log(n))更快,而不使用内存,但如果没有更多信息,则无法推荐其中一种算法。

假设您对数据没有其他知识,并且必须使用通用排序方法,理论上最好的就地排序算法是O(n*log(n))。Arrays.sort方法应该使用其中的一种,并且是您在没有更多信息的情况下的最佳选择


如果您愿意使用大量内存,可以使用非就地排序,如基数或计数。它们可能比n*log(n)快,有些快到O(n),但可能使用O(n)或更差的内存。如果您知道数据具有特殊属性(例如,它几乎已经被排序),则插入排序或类似算法可能比O(n*log(n))更快,而不使用内存,但如果没有更多信息,则无法推荐其中一种算法。

有许多不同的排序算法,每种算法都有各自的优缺点。据我所知,Java中没有可以使用的“排序算法集合”,因此最好自己实现算法


这是一个包含其属性的表。哪个最适合您取决于给定的资源和应用程序的要求。

有许多不同的排序算法,每个算法都有各自的优缺点。据我所知,Java中没有可以使用的“排序算法集合”,因此最好自己实现算法


这是一个包含其属性的表。哪一个最适合您取决于给定的资源和应用程序的要求。

取决于要排序的数据,您可以选择排序算法,但如果您不知道数据的类型,可以简单地使用数组。sort()
O(n lg(n))。

取决于要排序的数据,您可以选择排序算法,但若你们不知道数据的类型,你们可以简单地使用数组。sort()O(nlg(n))。

取决于你们的JVM:“……不必是MergeSort,但必须是稳定的”
Arrays。sort()
是一个双轴,你们有多少RAM可以使用?请澄清你们的问题。您是在询问内置Java方法吗?如果是-按照@Marc B所说的检查文档。如果否-这与Java无关,但与排序算法无关,请先看一看哪种方法适用于数组。sort()在JVM上使用依赖:“…不必是MergeSort,但必须是稳定的”
arrays.sort()
是一个双支点您可以使用多少RAM?请澄清您的问题。您是在询问内置Java方法吗?如果是-按照@Marc B所说的检查文档。如果否-这与Java无关,但对于排序算法,请先看一看哪个方法处理数组。sort()usedRadixSort不是关于拥有额外的空间,而是关于能够细化元素的分区,直到达到等价类。RadixSort不是关于拥有额外的空间,它是关于能够细化元素的分区,直到达到等价类。