首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以最小时间复杂度在java中进行排序

以最小时间复杂度在java中进行排序
EN

Stack Overflow用户
提问于 2014-08-18 16:25:28
回答 3查看 1.7K关注 0票数 2

我刚开始使用java,我必须对10^6的数组进行排序。sort method的时间复杂度是多少,这在java中是可用的。应该使用哪种排序算法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-18 16:30:29

假设您对数据没有其他知识,并且必须使用泛型排序方法,那么最佳的理论排序算法是O(n*log(n))。Arrays.sort方法应该使用其中之一,并且是您最好的选择,没有更多的信息。

如果您愿意使用大量内存,您可以使用非本地排序,如基数或计数。这些可以比n*log(n)更快,有些可以像O(n)那样快,但可能使用O(n)或更糟的内存。如果您了解具有特殊属性的数据(例如,它几乎已经被排序),则插入排序或类似的算法可能比O(n*log(n))更快,而无需使用内存,但没有更多的信息,其中的一种是无法建议的。

票数 4
EN

Stack Overflow用户

发布于 2014-08-18 17:23:39

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

下面是一个带有属性表的排序算法列表。哪一个最适合您,取决于所提供的资源和应用程序的需求。

票数 0
EN

Stack Overflow用户

发布于 2014-08-18 17:33:46

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

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

https://stackoverflow.com/questions/25367843

复制
相关文章

相似问题

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