swift 数组拓展---排序(sort() 方法)

21 篇文章 0 订阅

前两篇博客写了在使用swift写冒泡排序和选择排序,实在是遇到了很多坑,在使用forin循环时。也着实遇到了不少隐藏的点。但是swift 提供了可供使用的 排序的方法,如下图:在这里插入图片描述

var sortArr : [Float] = [9.54,5.88,2.09,4.76,73.1,6.9,3.087]
        print(sortArr)

先来一个数组吧
最常用的算是 前四个方法,我来挨个试一下,这四个方法是如何使用的,分别有什么效果
头一个 sort() 方法,这里要注意一下,该方法没有返回值,经过尝试,该方法 是要将数组元素有小到大排列 如下图
在这里插入图片描述
这个方法没有返回值,是默认修改了原来数组。而不是生成了一个新数组。

再一个 sorted() 方法, 该方法返回一个排好序的新的数组,请注意,原数组的元素顺序依旧没有改变。 请看结果。
在这里插入图片描述
当然可以用 sortArr 来接收排好序的数组。

再一个 sortArr.sort(by: <#T##(Float, Float) throws -> Bool#>) 我现在不知道如何解释这样一种格式,好像是闭包,但是我会用,看如下代码

var sortArr : [Float] = [9.54,5.88,2.09,4.76,73.1,6.9,3.087]
        sortArr.sort { (num01, num02) -> Bool in
            return num01 > num02 ? true : false
        }
        print(sortArr)

最终的结果 将 原数组由大到小排列。 num01 和 num02 类似于形参,返回的bool值,类似于算法内部的判断条件。
请看结果
在这里插入图片描述
当然啦,如果想要有小到大排列 改写成 num01 < num02 即可。

最后一个 sortArr.sorted(by: <#T##(Float, Float) throws -> Bool#>) 这个方法与前面sorted 类似,返回一个全新的数组。

let sortArr : [Float] = [9.54,5.88,2.09,4.76,73.1,6.9,3.087]
        let endArr = sortArr.sorted { (num01, num02) -> Bool in
            return num01 > num02 ? true : false
        }
        print(endArr)
        print(sortArr)

可以定义全新的变量接收这个结果,也可以使用原来的值来接收

我是磊怀 QQ 2849765859

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值