選擇排序Selection Sort是一種和插入排序Insertion Sort類似的排序方法,它同樣只適用于對規模不大的集合進行排序。它的核心思想是,在序列內部,把序列邏輯上分成已排序和未排序兩部分,不斷找到未排序部分中最符合排序規則的元素,添加進已排序部分,直到序列中所有元素都已經添加到了已排序部分,此時,整個序列就排序完成了。
冒泡排序是兩兩比較不斷交換來實現排序,所以比較繁瑣。
而選擇排序 則是先選擇要交換的那個數,才去交換。這樣就可以省去很多不必要的步驟。
Swift版實現示例:
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}
|
新聞熱點
疑難解答