使用選擇排序法對陣列進行升序排序的Swift程式
Swift中的選擇排序演算法是一種排序演算法,它從給定的未排序陣列中選擇最小或最大的元素,並將該元素放置在未排序陣列的開頭。這個過程持續到最後一個未排序的元素。現在我們使用選擇排序法對陣列進行升序排序。
例如:
Array: [6, 10, 3, 7]
第一次迭代 - 對於第一個位置,遍歷整個陣列,從0到3。遍歷整個陣列後,我們發現3是最小的數字,所以對於第一個位置,將6與3交換。
Resultant Array: [3, 10, 6, 7]
第二次迭代 - 再次遍歷整個陣列,找到第二個位置的元素。
Resultant Array: [3, 6, 10, 7]
第三次迭代 - 再次遍歷整個陣列,找到第三個位置的元素。
Resultant Array: [3, 6, 7, 10] So the sorted array in ascending order is [3, 6, 7, 10]
演算法
步驟1 - 建立一個函式,使用選擇排序演算法對陣列進行升序排序。
步驟2 - 在函式內部,將最小值初始化為mIndex變數。
步驟3 - 使用巢狀for-in迴圈遍歷陣列的每個元素以找到最小元素。
步驟4 - 在遍歷過程中,如果我們找到小於mIndex的元素,則交換這兩個值。
步驟5 - 然後將mIndex的值增加到下一個元素。
步驟6 - 現在在函式外部建立一個整數型別的陣列。
步驟7 - 呼叫函式並將陣列傳遞給它。
步驟8 - 列印排序後的陣列。
示例
在下面的示例中,我們將建立一個名為selectionSortAlgo()的函式。此函式以陣列作為輸入,並使用選擇排序演算法將給定陣列排序為升序。此函式獲取陣列的第一個元素並假設該陣列是最小的,然後將其與其餘陣列元素進行比較並檢查最小元素。如果找到最小元素,則將索引更新為該元素。之後,我們遍歷陣列並將第一個元素與最小元素交換。此過程持續到最後一個未排序的元素,最後顯示升序的排序陣列。
import Foundation
import Glibc
func selectionSortAlgo(arr: [Int]) -> [Int] {
// Creating a copy of original array
var nArr = arr
// Selecting minimum element and
// then place it at the beginning of the array
for x in 0..<nArr.count {
var mIndex = x
for y in x+1..<nArr.count {
if nArr[y] < nArr[mIndex] {
mIndex = y
}
}
if mIndex != x {
nArr.swapAt(x, mIndex)
}
}
return nArr
}
let array = [9, 1, 8, 1, 3, 5, 10, 2, 8, 23, 6]
let resultantArr = selectionSortAlgo(arr: array)
print("Sorted array in ascending order:", resultantArr)
輸出
Sorted array in ascending order: [1, 1, 2, 3, 5, 6, 8, 8, 9, 10, 23]
結論
這就是我們如何使用選擇排序法對陣列進行升序排序。在這裡,我們使用迭代方法實現選擇排序。因此,選擇排序的時間複雜度為O(N2)。雖然選擇排序簡單易懂,但實現並不穩定。它也不適用於大型資料集。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP