Arrays 更好的快速数组排序方法?

Arrays 更好的快速数组排序方法?,arrays,swift,sorting,Arrays,Swift,Sorting,我正在尝试对Swift内部的int数组从最大到最小排序。我使用的代码是: Array(data.keys).sorted(by: { $0 > $1 }) 给定的数组是一个整数为1到1000的数组。结果是: 999, 998, 997 ... 991, 990, 99, 989 ... 802, 801, 800, 80, 8, 799, 798 ... 我想要的结果是: 999, 998, 997 ... 991, 990, 989 ... 802, 801, 800, 799, 7

我正在尝试对Swift内部的int数组从最大到最小排序。我使用的代码是:

Array(data.keys).sorted(by: { $0 > $1 })
给定的数组是一个整数为1到1000的数组。结果是:

999, 998, 997 ... 991, 990, 99, 989 ... 802, 801, 800, 80, 8, 799, 798 ...
我想要的结果是:

999, 998, 997 ... 991, 990, 989 ... 802, 801, 800, 799, 798 ...

排序是基于ASCII字符串值计算的


键入Coersion to Int…

您的字典键是字符串而不是整数。您可以使用以下数字选项比较这些键对它们进行排序:

let sorted = data.keys.sorted { 
    $0.compare($1, options: .numeric) == .orderedDescending 
}

您没有整数数组。您有一个字符串数组。Swift不强制字符串/字符为ASCII(例如,因为它们是utf编码的(8/16/32,我不记得了),而且它通常不会隐式地执行任何强制操作。我对语言的使用很差…我只是指出排序是基于字符串/字符而不是基于Int排序的,而Int排序是正确的解决方案所做的…这与先映射到Int,然后再进行排序(假设
[Int]相比,性能如何?)
是可接受的最终结果类型)天哪,我觉得自己很笨,很抱歉浪费了你的时间哈哈