-
Notifications
You must be signed in to change notification settings - Fork 87
/
03.冒泡排序.go
61 lines (56 loc) · 1.03 KB
/
03.冒泡排序.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package _6_排序算法
import "fmt"
//冒泡排序
//两两比对,进行交换
func Bubble(arr []int) {
var flag = false
for i := 0; i < len(arr); i ++ {
flag = false
for j := 0; j < len(arr) - i - 1; j ++ {
if arr[j] > arr[j + 1] { //比较
arr[j], arr[j+1] = arr[j+1], arr[j]
flag = true //表示有数据交换
}
}
if !flag {
break
}
}
}
//标准版本
func BubbleSort(arr []int) {
for i := 0; i < len(arr); i ++ {
for j := 0; j < len(arr)-i-1; j ++ {
if arr[j] > arr[j+1] {
arr[j], arr[j+1] = arr[j+1], arr[j]
}
}
}
}
//冒泡改进
func BubbleSortFlag(arr []int) {
x := 0
for i := 0; i < len(arr); i ++ {
flag := false
for j := 0; j < len(arr) - i - 1; j ++ {
if arr[j] > arr[j+1] {
flag = true
x ++
arr[j], arr[j+1] = arr[j+1], arr[j]
}
}
if !flag {
break
}
}
fmt.Print("BubbleSort", x)
}
func MaoPao(arr []int) {
for i := 0; i < len(arr); i ++ {
for j := 0; j < len(arr)-i-1;j ++ {
if arr[j] > arr[j+1] {
arr[j], arr[j+1] = arr[j+1], arr[j]
}
}
}
}