文档章节

GO冒泡,二分查找

汤汤圆圆
 汤汤圆圆
发布于 09/20 22:04
字数 195
阅读 6
收藏 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
博文 76
码字总数 24369
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

MYSQL事务处理

INNODB 事务里,所有表引擎必须为INNODB,在非实务表上操作,不会警告,不会报错,但没有效果

关元
21分钟前
1
0
cmake 编译脚本

#!/bin/sh test -d build || mkdir -p build cd build cmake .. make

shzwork
39分钟前
2
0
从零开始实现Vue简单的Toast插件

概述: 在前端项目中,有时会需要通知、提示一些信息给用户,尤其是在后台系统中,操作的正确与否,都需要给与用户一些信息。 1. 实例 在Vue组件的methods内,调用如下代码 `this``.$toast({...

前端小攻略
43分钟前
1
0
yaf和yaconf

pecl install yafpecl install yaconf [yaf] yaf.environ = dev yaf.use_spl_autoload = On yaf.use_namespace = 1 [yaconf] yaconf.directory = /data/wwwroot/yaconf......

果树啊
44分钟前
0
0
day01:shell基础(shell基础、alias及重定向)

1、shell基础介绍: shell是一个命令解释器,用于用户与机器的交互: 也支持特定的语法(逻辑判断,循环): 每个用户都有自己特定的shell:Centos7的shell是bash(bourne agin shell): shel...

芬野de博客
47分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部