所以我一直在实现一些不同的排序方法(快速,合并和插入),并且看起来有点不切实际,并且想知道是否有人可以解释行为背后的思考过程。
我试图排序的列表如下:
[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"]
提前致谢!
答案 0 :(得分: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"]
现在又是什么问题?