Golang排序和查找

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
相当于空值

发布了98 篇原创文章 · 获赞 12 · 访问量 5517

猜你喜欢

转载自blog.csdn.net/qq_43141726/article/details/104355919
今日推荐