文档章节

GO冒泡,二分查找

汤汤圆圆
 汤汤圆圆
发布于 09/20 22:04
字数 195
阅读 4
收藏 0
Go
package main

import(
	"fmt"
)

func main() {
	var arr [5]int = [5]int{11,13,9,2,25}
	maopao(&arr)
	fmt.Println("arr = ", arr) //[2 9 11 13 25]

	findIndex := binaryFind(&arr, 0, len(arr) - 1, 25)
	fmt.Println(findIndex)
}

func binaryFind(arr *[5]int, leftIndex int, rightIndex int, findVal int) int {

	if leftIndex > rightIndex {
		return -1
	}
	middleIndex := (leftIndex + rightIndex) / 2 //找中间下标

	if (*arr)[middleIndex] > findVal { //说明findVal在左边
		return binaryFind(arr, leftIndex, middleIndex - 1, findVal)
	} else if (*arr)[middleIndex] < findVal { //说明findVal在右边
		return binaryFind(arr, middleIndex + 1, rightIndex, findVal)
	} else {
		return middleIndex
	}
}

func maopao(arr *[5]int) {
	var temp int = 0 //临时变量做交换
	len := len(arr)
	for i := 0; i < len - 1; i++ { //外层循环长度减1
		for j := 0; j < len - 1 - i; j++ {
			if arr[j] > (*arr)[j+1] {
				temp = (*arr)[j+1]
				(*arr)[j+1] = (*arr)[j]
				(*arr)[j] = temp
			}
		}
	}
}

© 著作权归作者所有

共有 人打赏支持
汤汤圆圆

汤汤圆圆

粉丝 11
博文 74
码字总数 23659
作品 0
昌平
程序员
数据结构学习(一)

数据结构与算法 1. 链表与数组。 2. 队列和栈,出栈与入栈。 3. 链表的删除、插入、反向。 4. 字符串操作。 5. Hash表的hash函数,冲突解决方法有哪些。 6. 各种排序:冒泡、选择、插入、希尔...

技术小甜
2017/11/16
0
0
Unity 游戏中 排序算法和查找算法记录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/KiTok/article/details/78470287 Hello ,I am Edwin 首先谢谢大家的支持,其次如果你碰到什么其他问题的话,欢...

KitStar
2017/11/07
0
0
第二十四节:Java语言基础-讲解数组的综合应用

数组的综合应用 数组转字符串 选择排序 选择排序是第一个人和后续排序的人进行比较,若第一个人大于第二个人,就进行交换,那么这时第一人就是最小的,然后这时的第一个人和第三个人进行比较...

达叔小生
08/10
0
0
怎么判断那种排序算法和查找算法更适用当前

排序和查找算法那麽多,但是那些方法更好? 那些方法更有优势? 自己应该主要掌握那几张算法 ? 或者自己当前的数据应该怎么排序或者查找? 今天我们来对应一个实际问题来搭配使用排序算法以...

KiTok
2017/11/07
0
0
java实现插入、冒泡、选择、快速排序、二分查找

一. 直接插入排序 void insertSort(int[] a){ for(int i=1;i<a.length; i++){ if (a[i]<a[i-1]){ temp = a[i]; //1 a[i] = a[i-1]; //2 // 继续和前面的进行比较 for(int j=i-2; j>=0; j--){......

xinyitianii
2014/06/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【大福利】极客时间专栏返现二维码大汇总

我已经购买了如下专栏,大家通过我的二维码你可以获得一定额度的返现! 然后,再给大家来个福利,只要你通过我的二维码购买,并且关注了【飞鱼说编程】公众号,可以加我微信或者私聊我,我再...

飞鱼说编程
今天
1
0
Spring5对比Spring3.2源码之容器的基本实现

最近看了《Spring源码深度解析》,该书是基于Spring3.2版本的,其中关于第二章容器的基本实现部分,目前spring5的实现方式已有较大改变。 Spring3.2的实现: public void testSimpleLoad(){...

Ilike_Java
今天
1
0
【王阳明心学语录】-001

1.“破山中贼易,破心中贼难。” 2.“夫万事万物之理不外于吾心。” 3.“心即理也。”“心外无理,心外无物,心外无事。” 4.“人心之得其正者即道心;道心之失其正者即人心。” 5.“无...

卯金刀GG
今天
2
0
OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
今天
10
0
vm GC 日志 配置及查看

-XX:+PrintGCDetails 打印 gc 日志 -XX:+PrintTenuringDistribution 监控晋升分布 -XX:+PrintGCTimeStamps 包含时间戳 -XX:+printGCDateStamps 包含时间 -Xloggc:<filename> 可以将数据保存为......

Canaan_
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部