go语言(3)

冒泡排序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package main
import "fmt"

func maopao(arr *[5]int) {
fmt.Println(*arr)
temp:=0
for i:=0;i<len(*arr)-1; i++ {
if (*arr)[i] > (*arr)[i+1] {
temp=(*arr)[i]
(*arr)[i]=(*arr)[i+1]
(*arr)[i+1]=temp
}
}
fmt.Println(*arr)
}

func main() {
arr := [5]int{1,4,1,4,2}
maopao(arr)
}

顺序查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package main
import "fmt"

func main() {
names := [4]string{"aa", "bb", "cc", "dd"}
var shuru = ""
fmt.Scanln(&shuru)
index := -1
for i:=0;i<len(names);i++ {
if names[i]==shuru {
index =i
break
}
}
if index!=-1 {
fmt.Println("aaaaa")
} else {
fmt.Println("bbbb")
}
}

二分查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main
import "fmt"

func erfen(arr *[6]int, left int, right int, target int) {
if left>right {
return
}
middle := (left+right)/2
if (*arr)[middle] == target {
fmt.Println("find%v n", target)
return
} else if (*arr)[middle]>target {
erfen (arr, left, middle-1, target)
} else {
erfen (arr, middle+1, right, target)
}
}

func main() {
arr:= [6]int{1,2,3,4,5,6}
erfen(&arr,0,len(ar)-1,2)
}