From f75bc1902b1dacca9fae9d85393803e07abbf9bf Mon Sep 17 00:00:00 2001 From: pro100ton Date: Sat, 30 Nov 2024 15:23:30 +0300 Subject: [PATCH] Initial commit with insertion sort --- cmd/main.go | 13 +++++ go.mod | 3 + internal/insertion_sort/insertion_sort.go | 68 +++++++++++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 cmd/main.go create mode 100644 go.mod create mode 100644 internal/insertion_sort/insertion_sort.go diff --git a/cmd/main.go b/cmd/main.go new file mode 100644 index 0000000..b8925d3 --- /dev/null +++ b/cmd/main.go @@ -0,0 +1,13 @@ +package main + +import ( + "fmt" + + insertionsort "git.pro100code.com/corman/internal/insertion_sort" +) + +func main() { + input := insertionsort.TEST_INPUT + result := insertionsort.InsertionSortBasic(input) + fmt.Print(result) +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..4c0bde7 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module git.pro100code.com/corman + +go 1.23.3 diff --git a/internal/insertion_sort/insertion_sort.go b/internal/insertion_sort/insertion_sort.go new file mode 100644 index 0000000..5ae44fa --- /dev/null +++ b/internal/insertion_sort/insertion_sort.go @@ -0,0 +1,68 @@ +package insertionsort + +var TEST_INPUT []int = []int{ + 45, + 9, + 79, + 36, + 20, + 95, + 35, + 72, + 55, + 2, + 16, + 77, + 58, + 46, + 30, + 49, + 92, + 61, + 52, + 94, + 26, + 76, + 14, + 1, + 57, + 33, + 38, + 66, + 11, + 85, + 83, + 65, + 3, + 15, + 74, + 41, + 90, + 89, + 88, + 96, + 64, + 71, + 10, + 60, + 75, + 91, + 93, + 84, + 6, + 22, + } + + +func InsertionSortBasic(input []int) []int { + for j := 1; j < len(input); j++ { + key := input[j] + i := j - 1 + for (i >= 0) && (input[i] > key) { + input[i+1] = input[i] + i = i - 1 + } + input[i+1] = key + } + return input +}