Swift 程序 使用冒泡排序對數組進行降序排序
冒泡排序是排序算法中最簡單的一種,但是因為其效率低,不適用于大型數據排序。愛掏網 - it200.com在實踐中,只適用于數據量小的情況或在特殊情況下的優化排序,比如本文所要實現的降序排序。愛掏網 - it200.com
冒泡排序的原理是通過相鄰元素交換位置,通過多輪循環,每輪循環都會將一個最大(小)的元素移到數據結尾(開頭)。愛掏網 - it200.com代碼實現通常使用兩重循環來完成,其中外層循環控制比較輪數(n-1 輪),內層循環控制每輪比較的次數。愛掏網 - it200.com
下面是冒泡排序的 Swift 實現代碼:
func bubbleSortDescending(_ arr: inout [Int]) {
let n = arr.count
for i in 0..<(n - 1) {
for j in 0..<(n - i - 1) {
if arr[j] < arr[j+1] {
swap(&arr[j], &arr[j+1])
}
}
}
}
其中 arr
表示待排序的整型數組,參數使用 inout
修飾,表示使用引用傳遞方式。愛掏網 - it200.com
程序說明
上述代碼中,外層循環的初始值為 0,結束條件是 n - 1
(最后一輪只剩下一個元素不需要比較),循環變量 i
每次增加 1。愛掏網 - it200.com
內層循環的初始值為 0,結束條件是 n - i - 1
(每輪比較已經排好的元素不需要再次比較),循環變量 j
每次增加 1。愛掏網 - it200.com
每次比較相鄰的兩個元素,如果前一個元素比后一個元素小,說明需要交換它們的位置。愛掏網 - it200.com這里使用 swap
函數實現交換, &
是引用操作符。愛掏網 - it200.com
最后,對于給定的數組,調用 bubbleSortDescending
函數即可完成降序排序。愛掏網 - it200.com排序完成之后,數組的元素從大到小排列。愛掏網 - it200.com
結論
本文介紹了冒泡排序的原理及 Swift 語言實現,實現了使用冒泡排序對數組進行降序排序的程序。愛掏網 - it200.com冒泡排序雖然效率低,但是它是排序算法的基礎,有助于了解其它更高效的排序算法的實現原理。愛掏網 - it200.com