每一次從待排序的資料元素中選出最小(或最大)的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。
找到第一小(大)的元素,放在第乙個位置
找到從第二個元素到末尾的元素中第二下(大)的元素,放入第二個位置
以此類推
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 第一趟排序 第二趟排序 此時我們看到,經過兩趟排序,前面兩個元素 ...