快速排序异常

时间:2017-04-12 07:11:48

标签: ios swift sorting swift3

swift中的sorted func排序不正确。

未分类的对象

  

[" 9"," 7"," 3"," 8"," 6",& #34; 2"," 4"," 10"," 5"]

排序对象

  

[" 10" ," 2"," 3"," 4",&#34 ; 5"," 6"," 7"," 8"," 9"]

代码:

print("unsorted objects",students.map{($0 as! EX_STUDENT).roll_no!})

studentList = students.sorted{($0 as! EX_STUDENT).roll_no! < ($1 as! EX_STUDENT).roll_no!}

print("sorted objects",studentList.map{($0 as! EX_STUDENT).roll_no!})

为什么10是第0个指数?

1 个答案:

答案 0 :(得分:1)

您可以使用localizedStandardCompare以数字方式对字符串进行排序:

let numbers = ["9", "7", "3", "8", "6", "2", "4", "10", "5"]

let numericSort = numbers.sorted{$0.localizedStandardCompare($1) == .orderedAscending}

numericSort  // ["2", "3", "4", "5", "6", "7", "8", "9", "10"]