package main import "fmt" var arr = []int{1, 3, 4, 2, 6, 7, 8, 0, 10, 1231, 4194, 491, 10, 194, 48, 2, 34} func BubbleSort() { arrLen := len(arr) for i := 0; i < arrLen-1; i ++ { for j := 0; j < arrLen-i-1; j ++ { if arr[j] > arr[j+1] { arr[j], arr[j+1] = arr[j+1], arr[j] } } } fmt.Println(arr) } /* 假设我们现在排序ar[]={1,2,3,4,5,6,7,8,10,9}这组数据, 按照上面的排序方式,第一趟排序后将10和9交换已经有序, 接下来的8趟排序就是多余的,什么也没做。所以我们可以在 交换的地方加一个标记,如果那一趟排序没有交换元素,说明 这组数据已经有序,不用再继续下去。 */ func BubbleSortV1() { arrLen := len(arr) for i := 0; i < arrLen-1; i ++ { flag := false for j := 0; j < arrLen-i-1; j ++ { if arr[j] > arr[j+1] { arr[j], arr[j+1] = arr[j+1], arr[j] flag = true } } if !flag { break } }
冒泡排序和优化 go实现
最新推荐文章于 2022-05-29 00:50:04 发布