Swift實現(xiàn)Selection Sort選擇排序算法的實例講解
更新時間:2016年07月06日 12:18:29 作者:Panl
選擇排序是一種穩(wěn)定的排序算法,且實現(xiàn)代碼通常比冒泡排序要來的簡單,這里我們就來看一下Swift實現(xiàn)Selection Sort選擇排序的實例講解
選擇排序Selection Sort是一種和插入排序Insertion Sort類似的排序方法,它同樣只適用于對規(guī)模不大的集合進行排序。它的核心思想是,在序列內(nèi)部,把序列邏輯上分成已排序和未排序兩部分,不斷找到未排序部分中最符合排序規(guī)則的元素,添加進已排序部分,直到序列中所有元素都已經(jīng)添加到了已排序部分,此時,整個序列就排序完成了。
冒泡排序是兩兩比較不斷交換來實現(xiàn)排序,所以比較繁瑣。
而選擇排序 則是先選擇要交換的那個數(shù),才去交換。這樣就可以省去很多不必要的步驟。
Swift版實現(xiàn)示例:
func selectSort(var arr: [Int]) ->[Int] {
var min = 0
// 只需要n-1趟
for var i = 0; i < arr.count - 1; ++i {
min = i
// 從第n+1趟起始找到末尾
for var j = i + 1; j < arr.count; ++j {
// 找到比min位置更小的,就更新這一趟所找到的最小值的位置
if arr[j] < arr[min] {
min = j
}
}
// 如果min與i不相等,說明有比i位置更小的,所以需要交換
if min != i {
let temp = arr[i]
arr[i] = arr[min]
arr[min] = temp
}
}
return arr
}

