[Swift 開發] sort非穩定排序

sort排序,如果兩個對象的值相等,排序就會出現問題。

上個例子給大家看看。

老規矩先創建個person類

class Person {
    var name = ""
    var id = 0
    init(i:Int,n:String) {
        name = n
        id = i
    }
}

初始化對象數組,數組中的id都相同,設置爲1

var arr = [Person]()

(1...30).map {
    arr.append(Person.init(i: 1, n: "name:\($0)"))
}

開始排序

arr.sort { (i1, i2) -> Bool in
    return i1.id < i2.id
}

arr.forEach { (p) in
    print(p.name,p.id)
}

打印結果:

name:1 1
name:2 1
name:3 1
name:4 1
name:5 1
name:6 1
name:7 1
name:8 1
name:10 1
name:11 1
name:12 1
name:13 1
name:14 1
name:15 1
name:16 1
name:17 1
name:18 1
name:19 1
name:20 1
name:21 1
name:22 1
name:23 1
name:24 1
name:25 1
name:26 1
name:27 1
name:28 1
name:29 1
name:30 1
name:9 1

可以看見,name:9 跑到了最下面。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章