• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Go初接触之归并排序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  刚开始接触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 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[Go]TCP服务中增加消息队列与工作池发布时间:2022-07-10
下一篇:
Go语言实现-观察者模式发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap