Huffman Coding: the golang version of SelectTwoMinimumValue
//////////////////////////////////////////////////////////////////////////////////////////////////// // filename : main.go // author : LiuDongguo // contact : jealdean@outlook.com // created : 21:39 16 Sep 2014 //////////////////////////////////////////////////////////////////////////////////////////////////// package main import ( "fmt" ) func main() { arrSlice := []int{5, 1, 1, 4, 4, 4, 3, 7, 5, 1} al := len(arrSlice) for i := 0; i < al-1; i++ { SelectTwoMinimum(arrSlice) } } //sort the array by Insert-Sort,one sort algorithm of stable func insertSort(arr []int) { j, total := 0, len(arr) for i := 1; i < total; i++ { tmp := arr[i] for j = i - 1; j >= 0 && arr[j] > tmp; j-- { arr[j+1] = arr[j] } arr[j+1] = tmp } } func SelectTwoMinimum(arr []int) (min, minSec int) { insertSort(arr) fmt.Println("After sort:", arr) i, arrLen := 0, len(arr) for ; i < arrLen; i++ { if arr[i] != 0 { break } } min, minSec = arr[i], arr[i+1] arr[i], arr[i+1] = 0, minSec+min fmt.Printf("the two minimum value: (%d,%d)\nAtfter value reset:%v\n", min, minSec, arr) return }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。