<prompt> Andika chaguo za kukokotoa za Golang ambazo hutekeleza algoriti ya kupanga ya kuunganisha kwenye mkusanyiko wa nambari kamili. Chaguo za kukokotoa zinapaswa kuchukua safu kamili kama ingizo na kurudisha safu iliyopangwa.  <response>: nendakifurushi kikuukuagiza fmtfunc mergeSortarr int int ikiwa lenarr 1 kurudi arrkatikati : lenarr 2left : mergeSortarr:midkulia : mergeSortarrmid:rudisha unganisha kushoto, kuliafunc unganishakushoto, kulia int int matokeo : makeint, 0, lenkushotolenkuliakwa lenkushoto 0 lenkulia 0 ikiwa lenkushoto 0 rudisha kiambatisho matokeo, kulia...ikiwa lenkulia 0 rudisha kiambatisho matokeo, kushoto...ikiwa kushoto0 kulia0 matokeo ongeza matokeo, kushoto0kushoto kushoto 1: nyengine matokeo ongeza matokeo, kulia0kulia kulia 1:matokeo ya kurudifunc main arr : int5, 3, 8, 4, 9, 1, 6, 2, 7fmt.PrintlnSafu asili:, arrsortedArr : mergeSortarrfmt.PrintlnSafu Iliyopangwa:, sortedArrChaguo hili la kukokotoa la Golang hutekelezea algoriti ya kupanga kwenye mkusanyiko wa nambari kamili. Chaguo za kukokotoa za mergeSort huchukua safu kamili kama ingizo na kurejesha safu iliyopangwa. Kwanza hugawanya mkusanyiko katika nusu mbili, kisha kupanga kwa kujirudia kwa kila nusu kwa kutumia kitendakazi sawa cha mergeSort. Hatimaye, inaunganisha nusu mbili zilizopangwa pamoja kwa kutumia kitendakazi cha kisaidizi cha unganisha. 