使用氣泡排序法將陣列按升序排序的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]
結論
這就是我們如何使用氣泡排序法對陣列進行升序排序。此演算法僅適用於少量元素,因為它不適合大量元素,因為它的平均和最壞情況下的時間複雜度很高。
廣告