这是一个代码问题。
输入值
以最方便的格式列出非负整数。
输出量
以任何格式排序的相同列表最方便。
限制
- 在最坏的情况下,您的代码必须以O(n log n)的时间运行,这
n
是输入中整数的数量。这意味着例如随机快速排序。但是,还有许多其他选项可供选择。 - 不要使用任何排序库/函数/类似函数。另外,不要使用任何可以为您完成大部分排序工作的东西,例如堆库。基本上,无论您实施什么,都应从头开始实施。
您可以根据需要定义一个函数,但是请在实际运行的完整程序中显示该函数的示例。它应该在下面的所有测试案例中成功且快速地运行。
测试用例
In: [9, 8, 3, 2, 4, 6, 5, 1, 7, 0]
Out:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In: [72, 59, 95, 68, 84]
Out:[59, 68, 72, 84, 95]
In: [2, 2, 1, 9, 3, 7, 4, 1, 6, 7]
Out:[1, 1, 2, 2, 3, 4, 6, 7, 7, 9]
In: [2397725, 1925225, 3304534, 7806949, 4487711, 8337622, 2276714, 3088926, 4274324, 667269]
Out:[667269,1925225, 2276714, 2397725,3088926, 3304534, 4274324, 4487711, 7806949, 8337622]
你的答案
请在答案标题中说明您已实现的排序算法以及解决方案的长度。
O(n log n)时间排序算法
存在许多O(n log n)时间算法。该表列出了其中一些。
intersect
自动对数组进行排序。我猜你也想排除那些。怎么样unique
(删除重复项,对结果进行排序)?