Swift 選擇排序演算法

2021-08-08 07:20:42 字數 807 閱讀 5849

每一次從待排序的資料元素中選出最小(或最大)的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。

找到第一小(大)的元素,放在第乙個位置

找到從第二個元素到末尾的元素中第二下(大)的元素,放入第二個位置

以此類推

import foundation

//選擇排序

var unsortedlist : [int] =

//排序20個 0-99的隨機整數

for i in 0..<20

print("原始陣列 : \(unsortedlist)\n")

//統計一下排序的次數

var sortcount : int = 0

var sortedlist = selectsort(&unsortedlist)

print("\n排序後陣列 : \(sortedlist) \n 次數:\(sortcount)")

/// 選擇排序演算法

////// - parameter list: 待排陣列

/// - returns: 排序完畢的陣列

private func selectsort(_ list : inout[int]) -> [int]

}//交換i 和 最小元素的位置

新blog位址 www.livefor.cn

Swift 排序演算法

本文採用陣列實現。排序演算法 時間複雜度 空間複雜度 是否穩定 直接插入排序 o n 2 o 1 是希爾排序 o nlogn o 1 否氣泡排序 o n 2 o 1 是選擇排序 o n 2 o 1 否歸併排序 o nlogn o n 是快速排序 o nlogn o logn 否堆排序 o nlogn...

排序演算法(Swift)

電腦科學中,演算法的時間複雜度是乙個函式,它定性描述了該演算法的執行時間。這是乙個關於代表演算法輸入值的字串的長度的函式。時間複雜度常用大o符號表述,不包括這個函式的低階項和首項係數。使用這種方式時,時間複雜度可被稱為是漸近的,它考察當輸入值大小趨近無窮時的情況。func bubblesort ar...

演算法 選擇排序,例項分析選擇排序演算法

選擇排序,將乙個序列看做兩個部分,前面有序,後面無序,每次在後面的無序序列中,選擇乙個最小的元素,交換到前面有序序列的末尾,直到無序序列全部完成交換,即可完成排序 選擇排序是不穩定的排序演算法 有乙個序列 5,2,0,1,3,1,4 第一趟排序 第二趟排序 此時我們看到,經過兩趟排序,前面兩個元素 ...