冒泡排序原理
对数组内所有n个元素依次进行比较和交换位置,较大的元素往上浮较小的元素往下沉,外层进行n-1次循环后数组会从小到大排好序,
时间复杂度O(n^2)。
Golang代码实现
package main
import "fmt"
/**
1. 比较相邻的元素。如果第一个比第二个大,就交换它们两个;
2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;
3. 针对所有的元素重复以上的步骤,除了最后一个;
4. 重复步骤1~3,直到排序完成。
*/
func main() {
array := []int{6, 7, 9, 3, 6, 8, 1, 9, 3}
len := len(array)
for i := 0; i < len-1; i++ {
for j := i+1; j < len; j++ {
if array[i] > array[j] {
array[i], array[j] = array[j], array[i]
}
}
}
fmt.Println(array)
}
<a href=“https://github.com/sjatsh/algorithms/blob/master/src/github.com/sjatsh/algorithms/sort/bubble.go" target="_blank”">github地址