我最近接触过很多排序算法:从冒泡排序到基数和计数排序,但是有一个特殊的问题,我不知道做什么和不合法。 (我还处于伪代码编写阶段,所以我还没有在代码语言中编写algs并运行测试 - 因此我对什么是合法的,哪些是不合法的是安全的,是有点不稳定。)
问题在于如何根据起点排序间隔列表: 例如:排序List1 = [[1,4],[7,17],[5,10]] 对于我设计的特定算法,我需要将它们分类为: [[1,4],[5,10],[7,17]]
我想过向后做基数排序,但我读到基数排序专门用于数字排序。看起来我也可以使用铲斗排序,但我们没有在课堂上了解铲斗排序......
编辑1:我需要担心时间效率,这就是为什么我没有做最直接的解决方案并比较范围内的所有List1 [i] [0](list1 )
答案 0 :(得分:1)
我认为间隔起点可以是任何实数,在这种情况下我会建议你使用基于比较的排序(插入,选择,冒泡,合并,堆或快)而不是分配排序(基数,计数或桶)。虽然基于比较的排序具有O(nlogn)的下限,但是它们可以在任何一般情况下使用,与O(n)类似,例如计数/桶,需要输入在某个特定范围内。