标签: java big-o
我想实现至少两种不同的解决方案,以Big-O表示法找到具有O(N * log(N))平均时间复杂度的第N个最大元素,其中N是列表中元素的数量?
我应该在java程序中使用哪种搜索算法来查找关于O(N * log(N))的第n个最大元素?
答案 0 :(得分:2)
实际上,使用quick sort算法中的分区(看看here)可以在线性时间内解决您遇到的问题。如果你真的需要和O(N*log(N))算法比大多数有效的排序算法都要做 - 例如快速排序,合并排序,堆排序。
quick sort
O(N*log(N))