This is a creation in Article, where the information may have evolved or changed.
//////////////////////////////////////////////////////////////////////////////////////////////////////Filename:main.go//Author:liudongguo//contact:jealdean@outlook.com//created:21:39 Sep////////////////////////////////////////////////////////////////////////////////////////////////////Package Mainimport ("FMT") Func main () {arrslice:= []int{5,1,1,4,4,4,3,7,5,1} al:=Len (arrslice) forI: =0; I < al-1; i++{selecttwominimum (Arrslice)}}//sort the array by Insert-sort,one sort algorithm of stableFunc Insertsort (arr []int) {j, total:=0, Len (arr) forI: =1; I < total; i++{tmp:=Arr[i] forj = i-1; J >=0&& arr[j] > tmp; j--{arr[j+1] =Arr[j]} arr[j+1] =tmp}} Func selecttwominimum (arr []int) (Min, minsecint) {insertsort (arr) fmt. Println ("After sort:", arr) I, Arrlen:=0, Len (arr) for; i < Arrlen; i++ { ifArr[i]! =0 { Break}} min, MinSec= Arr[i], arr[i+1] arr[i], arr[i+1] =0, minsec+min FMT. Printf ("The minimum value: (%d,%d) \natfter value reset:%v\n", Min, minsec, arr)return}