用golang重写冒泡、选择和快速三种排序算法。
测试输入参数如下所示:
valus := []int{12, 23, 1, 5, 3, 9}
冒泡排序接口:
func bubbleSort(values []int) {
for i := 0; i < len(values); i++ {
for j := i+1; j < len(values); j++ {
if values[i]>values[j]{
values[i],values[j] = values[j],values[i]
}
}
}
fmt.Println(values)
}
选择排序接口:
func selectSort(valus []int) {
var pos int = 0
for i:=0; i<len(valus); i++ {
fmt.Println(i)
pos = i
for j:=i+1; j<len(valus); j++ {
if valus[j] < valus[pos] {
pos = j
}
}
if pos != i {
valus[pos], valus[i] = valus[i], valus[pos]
}
}
fmt.Println(valus)
}
快速排序接口:
func quickSort(valus []int, low int, high int) {
if low >= high {
return
}
first := low
last := high
key := valus[first]
for first < last {
for first < last && valus[last] >= key {
last--
}
valus[first] = valus[last]
for first < last && valus[first] <= key {
first++
}
valus[last] = valus[first]
}
valus[first] = key
quickSort(valus, low, first-1)
quickSort(valus, first+1, high)
}