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