1

因此,我一直在实现一些不同的排序方法(快速、合并和插入),并且发现似乎有点不切实际,想知道是否有人可以解释行为背后的思维过程。

我试图排序的列表如下:

[20401, 11087, 2, 62176, 70095, 20947, 20098, 90914, 53475, 51251, 20065]

反馈是:

["11087", "2", "20065", "20098", "20401", "20947", "51251", "53475", "62176", "70095", "90914"]

如果我将 2 更改为 00002 那么我会得到一个正确排序的列表

["00002", "11087", "20065", "20098", "20401", "20947", "51251", "53475", "62176", "70095", "90914"]

提前谢谢!

4

1 回答 1

0

您在 OP 中演示的相应两个输出可以按如下方式获得:

a = [20401, 11087, 2, 62176, 70095, 20947, 20098, 90914, 53475, 51251, 20065]

a.sort.map &"%05d".method( :% )
#=> ["00002", "11087", "20065", "20098", "20401", "20947", "51251", "53475", "62176", "70095", "90914"]

a.map( &:to_s ).sort
#=> ["11087", "2", "20065", "20098", "20401", "20947", "51251", "53475", "62176", "70095", "90914"]

现在又是什么问题?

于 2013-10-14T00:33:24.597 回答