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) } |
1 2 3 | 排序前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\n", middle) } } func main() { //定义一个数组 arr := []int{1, 2, 5, 7, 15, 25, 30, 36, 39, 51} BinaryFind(&arr, 0, len(arr) - 1, 30) }
本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/p/11142597.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示