归并排序-Golang
归并排序核心思想
1、数组的拆分,使用递归方式进行拆分
2、归并,使用临时数组进行存储排序好的数据, 最后与原始数据进行替换
代码如下,具体的图流程,网上一抓一大把
package mainimport "fmt"func main() {arry := []int{2, 3, 1, 8, 5, 6}mergeSort(arry, 0, len(arry)-1)fmt.Println("arry:", arry)
}func mergeSort(arry []int, l, r int) {if l >= r {return}// mid := l + (r-1)/2 错误// 获取mid生成方式使用 l +r /2,mid := (l + r) / 2mergeSort(arry, l, mid)mergeSort(arry, mid+1, r)sort(arry, l, mid, r)
}func sort(arry []int, l, mid, r int) {i := lj := mid + 1 // j是第二个数组的开始temp := make([]int, 0)// 左右边界都没有出界for i <= mid && j <= r {if arry[i] <= arry[j] {temp = append(temp, arry[i])i++} else {temp = append(temp, arry[j])j++}}// 左边界出界for i > mid && j <= r {temp = append(temp, arry[j])j++}// 有边界出界for i <= mid && j > r {temp = append(temp, arry[i])i++}//重新赋值给arryfor k, v := range temp{arry[l+k] = v}
}
归并排序-Golang相关推荐
- 获取用户列表为空_数据结构和算法(Golang实现)(15)常见数据结构-列表
列表 一.列表 List 我们又经常听到 列表 List 数据结构,其实这只是更宏观的统称,表示存放数据的队列. 列表 List:存放数据,数据按顺序排列,可以依次入队和出队,有序号关系,可以取出某序 ...
- vrp 节约算法 c++_数据结构和算法(Golang实现)(8.1)基础知识-前言
基础知识 学习数据结构和算法.我们要知道一些基础的知识. 一.什么是算法 算法(英文algorithm)这个词在中文里面博大精深,表示算账的方法,也可以表示运筹帷幄的计谋等.在计算机科技里,它表示什么 ...
- golang 排序_常用排序算法之冒泡排序
周末无事,带娃之余看到娃娃在算数,想到了排序-尝试着把几种常用的排序算法跟大家聊一聊,在分析的后面我会用GoLang.PHP和JS三种语言来实现下. 常见的基于选择的排序算法有冒泡排序.插入排序.选择 ...
- Golang sort 排序
1.前言 开发过程中,我们经常需要对元素进行排序,使用 Go 我们可以轻松实现. Go 内置 sort 包中提供了根据一些排序函数可对任何序列进行排序,并提供自定义排序规则的能力. sort 包实现了 ...
- golang面试题题目归纳
golang面试题题目归纳 2021.06.01 defer 2021.06.02 go的调度 1.多进程/多线程产生的问题 2. "内核态 "线程和" 用户态 &quo ...
- Golang开发工程师面试题整理
Go语言 Go语言中数组和切片的区别是什么?它们可以相互转化吗? 切片是指针类型,数组是值类型: 数组的长度是固定的,而切片不是(切片可以看成动态的数组): 切片比数组多一个容量(cap)属性: 切片 ...
- 算法和数据结构(golang语言实现)
算法和数据结构(golang语言实现) 第1节 选择.冒泡.插入.复杂度 选择排序 选择排序 时间复杂度为O(N^2) 额外空间复杂度O(1) 过程: arr[0-N-1]范围上,找到最小值所在的位置 ...
- golang大厂面试1
golang大厂面试 Golang字节面试经验分享 第一面 面试官首先介绍说会有几轮面试 算法题 1.1 将整数转换二进制 然后将负数变成 例子 例如,n = 1(1:1 的二进制表示) 例如,n = ...
- golang大厂面试2
golang大厂面试 滴滴 写个二分查找 以下是一个简单的二分查找算法的 Go 语言实现: package mainimport "fmt"// 二分查找函数 func binar ...
最新文章
- 为什么防火墙透传不过去VLAN11?
- java spring包_java 自定义加载器,加载spring包,动态加载实现,jar包隔离,tomcat加载webapp方式...
- nsoutlineview 搜索_阿里巴巴搜索推荐广告三位一体的在线服务体系
- 阿里内推算法岗位编程笔试题
- SHA256算法原理详解图
- 正找工作的同学看过来——Java项目经验篇
- 实对称矩阵的特征向量矩阵为酉矩阵
- VS2017 插件的安装目录
- 【Multisim仿真】利用运算放大器产生方波、三角波发生器
- linux如何打出罗马数字,ps罗马数字怎么打
- 细节复盘2 (图片放足够大高斯模糊< style > scopedvue打开新的页面轮播图抖动的问题 translateZ、translateY、垂直水平居中)2020-8-1
- c语言程序设计工作任务,C语言程序设计任务驱动教程
- C语言基本变量类型及变量的定义
- PS 滤镜算法原理——浮雕效果
- ev4视频转换为mp4工具使用教程
- 计算机网络安全评估,计算机网络系统安全性分析及评估
- 《视频解密》中文版(第四版) 第五章 模拟视频接口
- mini2440 linux驱动程序,基于linux的mini2440 led驱动及应用程序
- 企业数字化办公利器——华为云桌面Workspace
- 第8章 泛型 《Kotlin 项目实战开发》