0

我最近接触了很多排序算法:从冒泡排序到基数排序和计数排序,但有一个特殊的问题我不知道什么是合法的。(我仍处于伪代码编写阶段,所以我还没有用代码语言编写算法并运行测试——因此我对什么是“合法”和什么不合法的安全性有点不稳定。)

问题是关于相对于起点对间隔列表进行排序:例如:sorting List1 = [[1,4] , [7, 17], [5, 10]] 对于我设计的特定算法,我需要将它们分类为: [[1,4] , [5, 10], [7, 17]]

我想过向后进行基数排序,但我读到基数排序专门用于数字排序。看起来我也可以使用桶排序,但是我们没有在课堂上学习桶排序......

Edit1:我需要担心时间效率,这就是为什么我没有做最直接的解决方案并比较所有 List1[i][0] for i in range(list1)

4

1 回答 1

1

我想间隔起点可以是任何实数,在这种情况下,我建议您使用基于比较的排序(插入、选择、冒泡、合并、堆或快速)而不是分布排序(基数、计数或桶) )。尽管基于比较的排序具有 O(nlogn) 的下限,但与 O(n) 排序相比,它们可以在任何一般情况下使用,例如计数/存储桶需要输入在某个特定范围内。

于 2013-09-30T17:28:48.990 回答