From 6284316078afe357e3b1c77bd058fcd9e0c12788 Mon Sep 17 00:00:00 2001 From: termith Date: Thu, 26 Jun 2014 18:59:53 +0400 Subject: [PATCH] Added Shell sort --- sorting/shell_sort.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 sorting/shell_sort.go diff --git a/sorting/shell_sort.go b/sorting/shell_sort.go new file mode 100644 index 0000000..1b5dc35 --- /dev/null +++ b/sorting/shell_sort.go @@ -0,0 +1,25 @@ +package main + +/* + * Shell sort - http://en.wikipedia.org/wiki/Shellsort + */ + +import "fmt" + +import "github.com/0xAX/go-algorithms" + +func main() { + arr := utils.RandArray(10) + fmt.Println("Initial array is:", arr) + fmt.Println("") + + for d := int(len(arr)/2); d > 0; d /= 2 { + for i := d; i < len(arr); i++ { + for j := i; j >= d && arr[j-d] > arr[j]; j -= d { + arr[j], arr[j-d] = arr[j-d], arr[j] + } + } + } + + fmt.Println("Sorted array is: ", arr) +} \ No newline at end of file