Swift實現氣泡排序演算法程式
在Swift中,氣泡排序演算法是最簡單的排序演算法。該演算法透過反覆比較相鄰的元素,如果它們不在正確的位置,就交換它們的位置來排序元素。該演算法僅適用於少量元素,不適用於大量元素,因為它的平均和最壞情況下的時間複雜度很高。因此,氣泡排序的工作原理是:
假設我們有以下陣列:

現在我們使用氣泡排序將陣列按升序排序。從第一個索引開始,我們比較第一個和第二個元素。如果第一個元素大於第二個元素,則我們交換這兩個元素的位置。類似地,比較第二個和第三個元素,如果第二個元素大於第三個元素,則交換這兩個元素的位置。這個過程一直持續到最後一個未排序的元素。
第一輪迭代

第二輪迭代
在第二輪迭代中,我們必須對最後一個元素重複相同的步驟。

這就是我們使用氣泡排序對陣列進行排序的方式。
演算法
步驟1 - 建立一個函式,使用氣泡排序演算法按升序排序陣列。
步驟2 - 在函式內部,我們執行巢狀的for-in迴圈來遍歷給定陣列中每對相鄰元素。
步驟3 - 檢查array[y]>array[y+1]。如果是,則交換這兩個元素的位置。如果不是,則移動到下一對。
步驟4 - 現在在函式外部建立一個整數型別的陣列。
步驟5 - 呼叫函式並將陣列傳遞給它。
步驟6 - 列印排序後的陣列。
示例
在下面的示例中,我們將建立一個名為myBubbleSort()的函式。此函式接受一個數組作為輸入,並使用氣泡排序演算法將給定陣列按升序排序。此函式使用巢狀的for-in迴圈迭代給定陣列中的每對相鄰元素,如果第一個元素大於第二個元素,則進行交換。此過程一直持續到最後一個未排序的元素。在這裡,該函式使用inout引數修改原始陣列。最後顯示排序後的陣列。
import Foundation
import Glibc
// Function to sort array using bubble sort
func myBubbleSort(_ 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 = [10, 87, 2, 90, 34, 1, 6, 78]
myBubbleSort(&arr)
print("Sorted array: \(arr)")
輸出
Sorted array: [1, 2, 6, 10, 34, 78, 87, 90]
結論
這就是我們如何實現氣泡排序演算法。它只適用於小型資料集。平均和最壞情況下的時間複雜度為O(n2),其中n是專案的數量。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP