Golang
1 排序
冒泡排序
传地址
package main
import "fmt"
func main(){
arr := [5]int {44,22,33,55,-4}
Bu(&arr)
fmt.Println(arr)
}
func Bu(arr *[5]int){
var temp int = 0
for i := 0;i < len(*arr) - 1;i++{
for j:=0;j < len(*arr) - i - 1;j++{
if (*arr)[j] > (*arr)[j + 1] {
temp = (*arr)[j]
(*arr)[j] =(*arr)[j + 1]
(*arr)[j + 1] = temp
}
}
}
}
传值
package main
import "fmt"
func main(){
arr := [5]int {1,2,45,22,-5}
var temp int = 0
for i := 0;i < len(arr) - 1;i++{
for j := 0;j < len(arr) - i - 1;j++{
if arr[j] > arr[j + 1]{
temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
}
}
}
fmt.Println(arr)
}
下面的方法不会修改
package main
import "fmt"
//不会改
func main(){
arr := [5]int {1,2,45,22,-5}
Bub(arr)
fmt.Println(arr)
}
func Bub(arr [5]int){
var temp int = 0
for i := 0;i < len(arr) - 1;i++{
for j := 0;j < len(arr) - i - 1;j++{
if arr[j] > arr[j + 1]{
temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
}
}
}
}
由上面的实例可知,Golang’支持指针。我觉得Golang可以看做是现代的C语言。
有很多C语言特性以及C++的特性。很优秀的语言。
2 查找
顺序查找
第一种方法为直接赋值赋i
package main
import "fmt"
func main(){
arr := [5]int {1,2,45,22,-5}
var temp int = 0
fmt.Scanln(&temp)
for i := 0;i < len(arr); i++{
if temp == arr[i]{
fmt.Println("找到了")
fmt.Println(i+1)
break
}else if i == len(arr) - 1{
fmt.Println("没找到")
}
}
}
第二种方法是改变index的形式
package main
import "fmt"
func main(){
var arr = [5]int {1,2,4,5,2}
a := 0
fmt.Scanln(&a)
var index = -1
for i := 0; i < len(arr);i++{
if a == arr[i]{
index = i
break
}
}
if index != -1{
fmt.Println(index + 1)
}else{
fmt.Println("No")
}
}
这里的nil相当于null
相当于空值