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


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

例如:

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

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

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

演算法

  • 步驟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 ascending 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 = [56, 2, 89, 3, 87, 22, 1, 6, 4]
mBubbleSort(&arr)
print("Sorted array in ascending order: \(arr)")

輸出

Sorted array in ascending order: [1, 2, 3, 4, 6, 22, 56, 87, 89]

結論

這就是我們如何使用氣泡排序法對陣列進行升序排序。此演算法僅適用於少量元素,因為它不適合大量元素,因為它的平均和最壞情況下的時間複雜度很高。

更新於:2023年4月24日

1K+ 次瀏覽

啟動您的職業生涯

完成課程後獲得認證

開始
廣告