教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang归并排序算法

golang归并排序算法

发布时间:2021-05-18   编辑:jiaochengji.com
教程集为您提供golang归并排序算法等资源,欢迎您收藏本站,我们将为您提供最新的golang归并排序算法资源
package algorithm

func merge(a []int, p int, q int, r int) {
	L := make([]int, q-p 1)
	R := make([]int, r-q)

	for i := 0; i < len(L); i   {
		L[i] = a[i p]
	}

	for i := 0; i < len(R); i   {
		R[i] = a[i q 1]
	}

	L = append(L, 0x7FFFFFFF)
	R = append(R, 0x7FFFFFFF)

	i := 0
	j := 0

	for k := p; k <= r; k   {
		if L[i] < R[j] {
			a[k] = L[i]
			i  
		} else {
			a[k] = R[j]
			j  
		}
	}
}

func MergeSort(a []int, p int, q int) {
	if p < q {
		m := (p   q) / 2
		MergeSort(a, p, m)
		MergeSort(a, m 1, q)
		merge(a, p, m, q)
	}
}

 

到此这篇关于“golang归并排序算法”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
golang归并排序算法
Go实战--golang中各种排序算法实现以及生成随机数
数据结构和算法(Golang实现)(10)基础知识-算法复杂度主方法
Go-sort对map的value进行排序
javascript排序算法之合并排序与归并排序的例子
java排序算法
Golang实现常见排序算法
golang 算法课 给定乱序的0, 1 输出前0 后1
【golang】算法 -- 快速排序
排序算法—归并排序【附代码】

[关闭]
~ ~