一、冒泡排序
// 冒泡排序
for i in 0..<list.count {
for j in i+1..<list.count {
if list[i] > list[j] {
let temp = list[i]
list[i] = list[j]
list[j] = temp
}
}
}
二、选择排序
// 选择排序
for i in 0..<list.count {
var min = i
for j in i+1..<list.count {
if list[j] < list[min] {
min = j
}
}
let minValue = list[min]
list[min] = list[i]
list[i] = minValue
}
三、插入排序
// 插入排序
for i in 1..<list.count {
let temp = list[i]
for j in (1...i).reversed() {
if list[j - 1] > temp {
let current = list[j]
list[j] = list[j-1]
list[j - 1] = current
} else {
break
}
}
}
四、希尔排序
// 希尔排序
var gap = list.count / 2
while gap > 0 {
var j: Int = 0
for i in 0..<gap {
j = i + gap
while j < list.count {
if list[j] < list[j - gap] {
let temp = list[j]
var k = j - gap
while k >= 0 {
if list[k] > temp {
list[k + gap] = list[k]
list[k] = temp
} else {
break
}
k -= gap
}
}
j += gap
}
}
gap /= 2
}
网友评论