1.0
冒泡排序算法
bubbleSort
//冒泡排序算法主要是利用中间变量进行交换
//step: 定义一个函数,bubbleSort,接收数组参数
//setp2:设置一个用于交换的变量temp
//setp3:2层 for 循环遍历 外层遍历小于len((arr))-1
// 内层遍历小于 len((arr))-1-i
//setp4:如果前面的数 大于 后面的数 ,交换
package main
import "fmt"
func bubbleSort(arr* []int){
var temp int = 0
for i:=0;i < len((*arr))-1;i ++ {
for j :=0;j <len((*arr))-1-i;j++{
if (*arr)[j] >(*arr)[j+1] {
temp = (*arr)[j]
(*arr)[j] = (*arr)[j +1]
(*arr)[j +1] = temp
}
}
}
}
func main(){
var arr = []int{28,36,58,94,101,585}
fmt.Println(arr)
bubbleSort(&arr)
fmt.Println(arr)
}
1.2
二分查找
BinarySort
// 二分查找排序
//1:二分查找必须是有序数列,如果乱序无法查找
//定义一个函数,接收 数组引用类型参数,left,right,findval
//定义一个中间变量middle,进行二分查找的判断
//判断,if 左边left > 右边 right ,查找失败
package main
import "fmt"
func binarySort(arr*[]int,left int,right int,findval int){
var middle = (left+right)/2
if left > right {
fmt.Println("查找失败")
return
}
if (*arr)[middle] > findval{ //说明查找的数在left -----middle-1之间
binarySort(arr,left,middle-1,findval)
}else if(*arr)[middle] < findval { //说明查找的数在 middle +1 ------right之间
binarySort(arr,middle+1,right,findval)
}else{
fmt.Printf("找到了,下标为[%v] \n",middle)
}
}
func main (){
arr:=[]int{1,25,38,94,158,358,657,981}
//测试一把
binarySort(&arr,0,len(arr)-1,358) //因为func binarySort接收到参数是*[]int,所以arr要用&arr
}
1.3
随机数组逆序
//随机生成数列,然后逆序
//生成随机数需要运用rand ,并且设置一个rand.Seed(time.Now()UnixNano())
//循环随机数列,长度为 该序列的一半;
//进行交换:最后一个= 第一个
//倒数第二个 = 第二个
//倒数第三个 =第三个
//设置一个交换变量
//temp = array[len-1-i]
//array[len-1-i] = len[i]
//len[i] = temp
package main
import (
"fmt"
"math/rand"
"time"
)
func main(){
var array [10]int //定义一个切片
len:= len(array)
rand.Seed(time.Now().UnixNano()) //设置一个种子rand.Seed(time.Now()UnixNano())
for i :=0 ;i< len ;i++ {
array[i]=rand.Intn(1000)
}
fmt.Println("逆序前",array)
var temp int
for i:=0;i < len/2;i++{
temp = array[len-1-i]
array[len-1-i] = array[i]
array[i] = temp
}
fmt.Println("逆序后",array)
}