// 1、创建复杂数据类型(学生类型)
class Student {
let achievement : Int
let name : String
init(name: String, achievement: Int) {
self.name = name
self.achievement = achievement
}
}
// 2、排序方法
func mySort(array:inout Array<Any>, sortClourse:(Int,Int)->Bool) -> Array<Any> {
//冒泡排序算法
for indexI in array.indices {
//最后一个元素直接返回
if indexI == array.count - 1 {
break;
}
//冒泡排序
for indexJ in 0...((array.count - 1) - indexI - 1) {
// 调用传递进来的闭包算法
if sortClourse(indexJ,indexJ + 1) {
}
else {
//进行元素交换
swap(&array[indexJ], &array[indexJ + 1])
}
}
}
return array
}
// 3、方法调用,创建4个学生
let stu1 = Student(name:"小王", achievement: 89)
let stu2 = Student(name:"小李", achievement: 69)
let stu3 = Student(name:"小张", achievement: 81)
let stu4 = Student(name:"小孙", achievement: 93)
//将学生放入数组中
var stuArr : Array<Any> = [stu1, stu2, stu3, stu4]
//进行排序
mySort(array: &stuArr) { (index:Int, nextIndex:Int) -> Bool in
return (stuArr[index] as! Student).achievement > (stuArr[nextIndex] as! Student).achievement
}
Swift 复杂数据类型排序
最新推荐文章于 2022-03-20 21:24:07 发布