GO 算法


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 (*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)

}

你可能感兴趣的:(GO 算法)