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+ 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告