Swift-選擇排序

選擇排序(Selection Sort)會在在未排序序列中找到最?。ù螅┰?,存放到排序序列的起始位置,然后繼續(xù)以上過程,直至所有的元素排序完畢,代碼實(shí)現(xiàn):

func selectionSort(inout arr: Array<NSInteger>) {
    for i in 0.stride(to: arr.count-1, by: 1) {
        var minIndex = i
        for j in (i+1).stride(to: arr.count, by: 1) {
            if arr[j] < arr[minIndex] {
                minIndex = j
            }
        }
        
        let temp = arr[minIndex]
        arr[minIndex] = arr[i]
        arr[i] = temp
    }
}

var data = [3,8,10,2,9,5,1,100]
selectionSort(&data)
print("\(data)")

方案2

func sort(arr:inout [Int]) {
        let count:Int = arr.count
        for i in 0..<count {
            var minIndex:Int = i
            for j in i..<count {
                if arr[minIndex] > arr[j] {
                    minIndex = j
                }
            }
            if i != minIndex {
               swap(&arr[i], &arr[minIndex])
            }
        }
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    蟻前閱讀 5,301評論 0 52
  • 概述:排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部...
    每天刷兩次牙閱讀 3,826評論 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個記錄插入到已排序好...
    依依玖玥閱讀 1,353評論 0 2
  • 概述排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序,而外部排序是因排序的數(shù)據(jù)很大,一次不能容納全部的...
    Luc_閱讀 2,372評論 0 35
  • 接著寫。今天一天頭疼,試圖在頭疼的過程中努力的去想到底為什么。每當(dāng)偏頭疼犯的時候,心情都比較低落。周而復(fù)始的上演心...
    江太公曰閱讀 355評論 0 0

友情鏈接更多精彩內(nèi)容