使用氣泡排序法將陣列按降序排列的 Swift 程式


Swift 中的氣泡排序演算法是最簡單的搜尋演算法。該演算法透過重複交換相鄰元素(如果它們不在正確的位置)來對元素進行排序。所以現在我們使用氣泡排序法將陣列按降序排列。

例如 -

Array - [4, 7, 1, 8]
  • 第一次迭代 - 比較兩個元素,如果第一個元素小於第二個元素,則交換它們的位置。如果不是,則移動到下一對。

[4, 7, 1, 8] 4<7, swap the position
[7, 4, 1, 8] 4>1, remain same
[7, 4, 1, 8] 1<8, swap the position
[7, 4, 8, 1]
  • 第二次迭代 - 再次比較兩個元素,如果第一個元素小於第二個元素,則交換它們的位置。

[7, 4, 8, 1] 7>4, remain same
[7, 4, 8, 1] 4<8, swap position
[7, 8, 4, 1] 4>1, remain same
  • 第三次迭代 - 再次比較兩個元素,如果第一個元素小於第二個元素,則交換它們的位置。

[7, 8, 4, 1] 7<8, swap position
[8, 7, 4, 1] 7>4, remain same
[8, 7, 4, 1] 4>1, remain same
So the sorted array in descending order is [8, 7, 4, 1]

演算法

  • 步驟 1 - 建立一個函式,使用氣泡排序演算法將陣列按降序排列。

  • 步驟 2 - 在函式內部,我們執行巢狀的 for-in 迴圈以遍歷給定陣列中每對相鄰元素。

  • 步驟 3 - 檢查 array[y]<array[y+1]。如果是,則互換元素的位置。如果不是,則移動到下一對。

  • 步驟 4 - 現在在函式外部建立一個整數型別的陣列。

  • 步驟 5 - 呼叫函式並將陣列傳遞給它。

  • 步驟 6 - 列印排序後的陣列。

示例

在下面的示例中,我們將建立一個名為 mBubbleSort() 的函式。此函式將陣列作為輸入,並使用氣泡排序演算法將給定陣列按降序排序。此函式使用巢狀的 for-in 迴圈迭代給定陣列中的每對相鄰元素,如果第一個元素小於第二個元素,則交換它們。此過程持續到最後一個未排序的元素。這裡函式使用 inout 引數修改原始陣列。最後顯示排序後的陣列。

import Foundation
import Glibc

// Function to sort array in descending order using bubble sort
func mBubbleSort(_ array: inout [Int]) {
   let size = array.count
    
   for x in 0..<size {
      for y in 0..<size-x-1 {
        
         // Compare two adjacent elements
         if array[y] < array[y+1] {
            // Swap the elements if they are 
            // not in the correct order 
            let temp = array[y]
            array[y] = array[y+1]
            array[y+1] = temp
         }
      }
   }
}

// Array of integer type
var arr = [67, 3, 22, 89, 12, 1, 55, 80, 4]
mBubbleSort(&arr)
print("Sorted array in descending order: \(arr)")

輸出

Sorted array in descending order: [89, 80, 67, 55, 22, 12, 4, 3, 1]

結論

因此,這就是我們如何使用氣泡排序法將陣列按降序排列。該演算法僅適用於少量元素,不適用於大量元素,因為它的平均和最壞情況時間複雜度較高。

更新於: 2023年4月24日

374 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.