最近我接触过很多排序算法:从气泡排序到基数排序和计数排序,但是有一个特殊的问题,我不知道做什么是合法的。(我还处于伪代码编写阶段,所以我还没有用代码语言编写algs,也没有运行测试--因此,我对什么是“合法”和什么不合法的安全性有点动摇。)
问题在于对与起始点有关的间隔列表进行排序:例如:对我设计的特定算法排序List1 = [1,4,7,17,5,10],我需要将它们排序为:[1,4,5,10,7,17]
我想向后做基排序,但我读到基排序是专门用于数字排序的。看起来我也可以用桶排序,但我们在课堂上没有学过桶排序.
Edit1:有一个时间效率我需要担心,所以这就是为什么我不做最简单的解决方案,并比较所有的List1i在范围内(List1)
发布于 2013-09-30 17:28:48
我假设区间起始点可以是任何实数,在这种情况下,我建议您使用基于比较的排序(插入、选择、冒泡、合并、堆或快速),而不是分发排序(基数、计数或桶)。虽然基于比较的排序具有O(nlogn)的下界,但与O(n)排序相比,它们可以用于任何一般情况,比如计数/桶,这要求输入在某个特定的范围内。
https://stackoverflow.com/questions/19100055
复制相似问题