From c3d332be68cb0beb01d9cba8381acf3d9a63211e Mon Sep 17 00:00:00 2001 From: srksumanth Date: Thu, 1 Mar 2018 16:50:49 +0530 Subject: [PATCH] Improve code and change shrink factor --- sorting/comb_sort.go | 47 ++++++++++++++++---------------------------- 1 file changed, 17 insertions(+), 30 deletions(-) diff --git a/sorting/comb_sort.go b/sorting/comb_sort.go index 253ba12..03987d7 100644 --- a/sorting/comb_sort.go +++ b/sorting/comb_sort.go @@ -9,37 +9,24 @@ import "fmt" import "github.com/0xAX/go-algorithms" func main() { - arr := utils.RandArray(10) - fmt.Println("Initial array is:", arr) - fmt.Println("") - - tmp := 0 - gap := len(arr) - - for { - if gap > 1 { - gap = gap * 100 / 124 - } - - for i := 0 ; ; { - - if arr[i] > arr[i + gap] { - tmp = arr[i] - arr[i] = arr[i + gap] - arr[i + gap] = tmp - } + arr := utils.RandArray(10) + fmt.Println("Initial array is:", arr) + fmt.Println("") - i++ - - if i + gap >= len(arr){ - break - } - } + tmp := 0 + arrLen := len(arr) + gap := arrLen + for gap > 1 { + gap = gap * 10 / 13 //shrink factor is 1.3 - if gap == 1 { - break - } - } + for i := 0; i+gap < arrLen; i++ { + if arr[i] > arr[i+gap] { + tmp = arr[i] + arr[i] = arr[i+gap] + arr[i+gap] = tmp + } + } + } - fmt.Println("Sorted array is: ", arr) + fmt.Println("Sorted array is: ", arr) }