Swift 程序按升序对数组元素进行排序
在本文中,我们将学习如何编写一个 Swift 程序,按升序对数组元素进行排序。
这里我们将使用以下两种方法:
无参数 sort() 函数
有参数 sort(by:) 函数
Swift 提供了一个名为 sort() 的内置函数来对数组元素进行排序。此函数可以带参数或不带参数运行。默认情况下,此函数按升序对数组进行排序。或者,您可以将 < 传递给 sort(by:) 函数的参数,以按升序对数组进行排序。
方法 1:无参数 sort() 函数
Swift 提供了一个名为 sort() 的内置函数来对数组元素进行排序。此函数可以带或不带参数工作,但这里我们使用不带参数的 sort() 函数。默认情况下,此函数按升序对数组进行排序。
算法
func sort()
此处,sort() 函数按升序对数组进行排序。
算法
步骤 1 − 创建一个数组。
步骤 2 − 使用 sort() 方法按升序对数组进行排序−
Array1.sort()
步骤 3 - 显示原始数组。
步骤 4 - 显示排序后的数组
示例
在下面的示例中,我们没有在 sort() 函数中传递任何参数来按升序对数组进行排序。
import Foundation
import Glibc
// 创建数组
var Array1 : [String] = ["birds", "sky", "moon", "cloud"]
var Array2 : [Int] = [23, 56, 7, 5, 84, 2]
var Array3 : [Float] = [3.4, 67.3, 1.2, 5.6, 78.3]
// 按升序对数组进行排序
// 使用 sort() 方法
print("排序前数组 1 为:", Array1)
Array1.sort()
print("排序后数组 1 为:", Array1)
print("\n排序前数组 2 为:", Array2)
Array2.sort()
print("排序后数组 2 为:", Array2)
print("\n排序前数组 3 为:", Array3)
Array3.sort()
print("排序后数组3 is", Array3)
输出
排序前数组 1 为:["birds", "sky", "moon", "cloud"] 排序后数组 1 为 ["birds", "cloud", "moon", "sky"] 排序前数组 2 为:[23, 56, 7, 5, 84, 2] 排序后数组 2 为 [2, 5, 7, 23, 56, 84] 排序前数组 3 为:[3.4, 67.3, 1.2, 5.6, 78.3] 排序后数组 3 为 [1.2, 3.4, 5.6, 67.3, 78.3]
在上面的代码中,我们创建了一个包含三个不同元素的数组类型(即 Int、float 和 String)。现在使用 sort() 函数,我们对所有数组按升序(从低到高)进行排序。
方法 2:带参数的 sort() 函数
要按升序对数组元素进行排序,我们使用预定义的带有 by 参数的 sort(by:) 函数。其中 by 参数负责排序数组的顺序。如果 by 参数的值为 <,则 sort(by:) 函数会按升序对数组进行排序。如果 by 参数的值为 >,则 sort(by:) 函数会按降序对数组进行排序。
语法
func sort(by: <)
这里我们传递 <在 sort() 函数中按升序对数组进行排序。
算法
步骤 1 - 创建一个数组。
步骤 2 - 使用 sort(by:) 方法按升序对数组进行排序-
Array1.sort(by:>)
步骤 1 - 显示原始数组。
步骤 2 - 显示排序后的数组数组
示例
在下面的示例中,我们使用 sort(by:) 方法的参数对数组进行升序排序。
import Foundation
import Glibc
// 创建数组
var Array1 : [String] = ["birds", "sky", "moon", "cloud"]
var Array2 : [Int] = [73, 2, 87, 4, 9, 1]
var Array3 : [Float] = [84.3, 2.1, 3.5, 9.3, 1.3]
// 按升序对数组进行排序
// 使用 sort(by:<) 方法
print("排序前数组 1 为:", Array1)
Array1.sort(by:<)
print("排序后数组 1 为:", Array1)
print("\n排序前数组 2 为:", Array2)
Array2.sort(by:<)
print("排序后数组 2 为:", Array2)
print("\n排序前数组 3 为:", Array3)
Array3.sort(by:<)
print("排序后数组 3 为", Array3)
输出
排序前数组 1 为:["birds", "sky", "moon", "cloud"] 排序后数组 1 为 ["birds", "cloud", "moon", "sky"] 排序前数组 2 为:[73, 2, 87, 4, 9, 1] 排序后数组 2 为 [1, 2, 4, 9, 73, 87] 排序前数组 3 为:[84.3, 2.1, 3.5, 9.3, 1.3] 排序后数组 3 为 [1.3, 2.1, 3.5, 9.3, 84.3]
在上面的代码中,我们创建了一个包含三种不同类型(Int、float 和 String)的数组。现在,我们将 < 传入 sort(by:<) 函数的 by 参数,以便按升序(从低到高)对所有数组进行排序。
结论
以上就是我们使用同一个 sort() 函数,分别对带参数和不带参数的两种不同类型数组进行升序排序的方法。sort() 函数的复杂度在两种情况下均为 O(n log n),其中 n 表示序列的长度。