Table of Contents
基数排序(Radix Sort)/ 桶排序(Bucket Sort)
使用Xcode Version 10.2 (10E125)
冒泡法(Bubble sort)
Runtime: O( N^2 ) average and worst case. Memory: O(1)
func bubbleSort<T: Comparable>(items: inout [T]) {
for i in 0...items.count-2 {
for j in 0...items.count-i-2 {
if items[j] > items[j+1] {
let tmp = items[j]
items[j] = items[j+1]
items[j+1] = tmp
}
}
}
}
选择排序(Selection Sort)
Runtime: O( n^2 ) average and worst case. Memory: O(1)
最直白的想法,找到最小的,换到最前面
func selectionSort<T: Comparable>(items: inout [T]) {
for i in 0...items.count-2 {
let rem = Array(items[i...items.count-1])
let indexOfMinimum = indexOfMin(items: rem) + i
if indexOfMinimum != i {
let tmp = items[indexOfMinimum]
items[indexOfMinimum] &#