Go初接触之归并排序

  刚开始接触go语言,有些不适应,整体和C有些相像,所以学起来也不太困难,但是刚接触也感觉到了go在很多方面的强大。掌握了go的基本语法,简单写个归并排序练习一下:

 1 package main
 2 
 3 import (
 4     "fmt"
 5 )
 6 
 7 func hebing(arr []int8, left int8, mid int8, right int8) {
 8     var arr2 [10]int8
 9     i, j := left, mid + 1
10     cnt := 0
11     for i <= mid && j <= right {
12         if arr[i] < arr[j] {
13             arr2[cnt] = arr[i]
14             cnt += 1
15             i += 1
16         } else {
17             arr2[cnt] = arr[j]
18             cnt += 1
19             j += 1
20         }
21     }
22     for i <= mid {
23         arr2[cnt] = arr[i]
24         cnt += 1
25         i += 1
26     }
27     for j <= right {
28         arr2[cnt] = arr[j]
29         cnt += 1
30         j += 1
31     }
32     for tm1, tm2 := 0, left; tm2 <= right; tm1, tm2 = tm1 + 1, tm2 + 1 {
33         arr[tm2] = arr2[tm1]
34     }
35 }
36 
37 func mergesort(arr []int8, left int8, right int8) {
38     if left >= right {
39         return
40     }
41     mid := (left + right) / 2
42     fmt.Println(left, mid, right)
43     mergesort(arr, left, mid)
44     mergesort(arr, mid + 1, right)
45     hebing(arr, left, mid, right)
46 }
47 
48 func main() {
49     var arr = []int8{1, 4, 2, 5, 3}
50     mergesort(arr, 0, 4)
51     fmt.Println(arr)    
52 }

 

转载于:https://www.cnblogs.com/Torrance/p/8869996.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值