Swift 语言数组元素升序排序程序


在本文中,我们将学习如何编写一个 Swift 程序来对数组中的元素进行升序排序。

我们将使用以下两种方法:

  • 无参数的 `sort()` 函数

  • 带参数的 `sort(by:)` 函数

Swift 提供了一个名为 `sort()` 的内置函数来对数组元素进行排序。此函数可以带或不带参数。默认情况下,此函数按升序排序数组。否则,可以在 `sort(by:)` 函数的 `by` 参数中传递 `<` 来按升序排序数组。

方法 1:无参数的 `sort()` 函数

Swift 提供了一个名为 `sort()` 的内置函数来对数组元素进行排序。此函数可以带或不带参数,但此处我们使用无参数的 `sort()` 函数。默认情况下,此函数按升序排序数组。

语法

func sort()

`sort()` 函数按升序排序数组。

算法

  • 步骤 1 - 创建一个数组。

  • 步骤 2 - 使用 `sort()` 方法按升序排序数组

Array1.sort()
  • 步骤 3 - 显示原始数组。

  • 步骤 4 - 显示排序后的数组

示例

在下面的示例中,我们没有在 `sort()` 函数中传递任何参数来按升序排序数组。

import Foundation
import Glibc

// Creating arrays
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]

// Sorting the array in ascending order
// Using sort() method
print("Before Sorting Array 1 is:", Array1)
Array1.sort()
print("After Sorting Array 1 is", Array1)

print("\nBefore Sorting Array 2 is:", Array2)
Array2.sort()
print("After Sorting Array 2 is", Array2)

print("\nBefore Sorting Array 3 is:", Array3)
Array3.sort()
print("After Sorting Array 3 is", Array3)

输出

Before Sorting Array 1 is: ["birds", "sky", "moon", "cloud"]
After Sorting Array 1 is ["birds", "cloud", "moon", "sky"]

Before Sorting Array 2 is: [23, 56, 7, 5, 84, 2]
After Sorting Array 2 is [2, 5, 7, 23, 56, 84]
	
Before Sorting Array 3 is: [3.4, 67.3, 1.2, 5.6, 78.3]
After Sorting Array 3 is [1.2, 3.4, 5.6, 67.3, 78.3]

在上面的代码中,我们创建了一个包含三种不同类型(整数、浮点数和字符串)的数组。现在,使用 `sort()` 函数,我们将所有数组按升序(从小到大)排序。

方法 2:带参数的 `sort()` 函数

为了按升序对数组元素进行排序,我们使用预定义的 `sort(by:)` 函数及其 `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

// Creating arrays
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]

// Sorting the array in ascending order
// Using sort(by:<) method
print("Before Sorting Array 1 is:", Array1)
Array1.sort(by:<)
print("After Sorting Array 1 is", Array1)

print("\nBefore Sorting Array 2 is:", Array2)
Array2.sort(by:<)
print("After Sorting Array 2 is", Array2)

print("\nBefore Sorting Array 3 is:", Array3)
Array3.sort(by:<)
print("After Sorting Array 3 is", Array3)

输出

Before Sorting Array 1 is: ["birds", "sky", "moon", "cloud"]
After Sorting Array 1 is ["birds", "cloud", "moon", "sky"]

Before Sorting Array 2 is: [73, 2, 87, 4, 9, 1]
After Sorting Array 2 is [1, 2, 4, 9, 73, 87]

Before Sorting Array 3 is: [84.3, 2.1, 3.5, 9.3, 1.3]
After Sorting Array 3 is [1.3, 2.1, 3.5, 9.3, 84.3]

在上面的代码中,我们创建了一个包含三种不同类型(整数、浮点数和字符串)的数组。现在,我们在 `sort(by:<)` 函数的 `by` 参数中传递 `<`,以便将所有数组按升序(从小到大)排序。

结论

这就是我们如何使用相同的 `sort()` 函数以两种不同的方式(带参数和不带参数)按升序排序数组。在这两种情况下,`sort()` 函数的复杂度保持不变,均为 O(n log n),其中 n 表示序列的长度。

更新于:2022年12月20日

2K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.