Go初接觸之歸併排序

2022-03-21 20:37:20 字數 746 閱讀 5294

剛開始接觸go語言,有些不適應,整體和c有些相像,所以學起來也不太困難,但是剛接觸也感覺到了go在很多方面的強大。掌握了go的基本語法,簡單寫個歸併排序練習一下:

1

package main23

import (4"

fmt"5)

67func hebing(arr int8, left int8, mid int8, right int8) else21}

22for i <=mid

27for j <=right

32for tm1, tm2 := 0, left; tm2 <= right; tm1, tm2 = tm1 + 1, tm2 + 135}

3637

func mergesort(arr int8, left int8, right int8)

41 mid := (left + right) / 2

42fmt.println(left, mid, right)

43mergesort(arr, left, mid)

44 mergesort(arr, mid + 1

, right)

45hebing(arr, left, mid, right)46}

4748

func main()

50 mergesort(arr, 0, 4)51

fmt.println(arr)

52 }

go 排序演算法 歸併排序

1.7.1 演算法介紹 歸併排序是建立在歸併操作上的一種有效的排序演算法。該演算法是採用分治法 divide and conquer 的乙個非常典型的應用。將已有序的子串行合併,得到完全有序的序列 即先使每個子串行有序,再使子串行段間有序。若將兩個有序表合併成乙個有序表,稱為2 路歸併 1.7.2 ...

排序之歸併排序

歸併排序和快速排序的思想一樣,都是依據分治法 遞迴 兩者不同的是,歸併需要對子問題的解進行合併,即合併兩個已排序的表,合併的時間為線性的,最多進行了n 1次比較,其中n是元素的總數。歸併排序的基本思路就是將陣列分成二組a和b,如果這二組組內的資料都是有序的,那麼就可以很方便的將這二組資料進行排序。如...

排序之歸併排序

歸併排序還是有點雲裡霧裡 尤其是遞迴的時候的狀態樹與函式呼叫時的棧的狀態不太清楚,需要寫 加斷點做測試 先記錄下來,後面有時間再弄,先查到乙個用斷點測試後,描述歸併排序時遞迴狀態樹的部落格 其實如果按照 極客大學 演算法訓練營的覃超老師講的分治的模板,應該比較好寫出來 分治的模板 int divid...