zoukankan      html  css  js  c++  java
  • golang数组 排序和查找

                

     

    package main
    
    import "fmt"
    
    func BubbleSort(arr *[5]int){
    	fmt.Println("排序前arr=",(*arr))
    	temp := 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
    			}
    		}
    	}
    	fmt.Println("排序后arr=",(*arr))
    }
    
    
    func main()  {
    		arr := [5]int{24,69,80,57,13}
    
    		BubbleSort(&arr)
    
    		fmt.Println(arr)
    }
    

      

    排序前arr= [24 69 80 57 13]
    排序后arr= [13 24 57 69 80]
    [13 24 57 69 80]
    

      

         

    //代码
    package main
    import (
        "fmt"
    )
    
    //二分查找函数 //假设有序数组的顺序是从小到大(很关键,决定左右方向)
    func BinaryFind(arr *[]int, leftIndex int , rightIndex int, findVal int) {
        //判断leftIndex是否大于rightIndex
        if leftIndex > rightIndex {
            fmt.Println("没找到")
            return
        }
    
        //先找到中间的下标
        middle := (leftIndex + rightIndex) / 2
        fmt.Println(middle)
    
        if (*arr)[middle] > findVal {
            fmt.Println(leftIndex)
            fmt.Println(middle - 1)
            BinaryFind(arr, leftIndex, middle - 1, findVal)
        } else if (*arr)[middle] < findVal {
            BinaryFind(arr, middle + 1, rightIndex, findVal)
        } else {
            fmt.Printf("找到了,下标是%v
    ", middle)
        }
    }
    
    
    func main() {
        //定义一个数组
        arr := []int{1, 2, 5, 7, 15, 25, 30, 36, 39, 51}
        BinaryFind(&arr, 0, len(arr) - 1, 30)
    }

     

      

  • 相关阅读:
    深入理解java异常处理机制
    i2c总线
    运行时类型识别(RTTI)
    bcg界面库总结
    c++ 虚函数表
    宽字符,宽字符串
    c++异常处理
    内存管理
    c++中使用联合体
    MFC自定义消息
  • 原文地址:https://www.cnblogs.com/sunlong88/p/11142597.html
Copyright © 2011-2022 走看看