Swift 复杂数据类型排序

来源:互联网 发布:js提取url参数 编辑:程序博客网 时间:2024/06/07 01:22
// 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}

原创粉丝点击