zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    Meet Hadoop
    C++常用函数
    Summary
    获得小黄衫感想
    课程作业(八)
    课程作业(七)
    课程作业(六)
    课程作业(五)
    课程作业(四)
    课程作业(三)
  • 原文地址:https://www.cnblogs.com/Torrance/p/8869996.html
Copyright © 2011-2022 走看看