From 93d896e73ba64c8dad30f6e6c35f73b5977c7873 Mon Sep 17 00:00:00 2001 From: Gregory Eremin Date: Mon, 12 Oct 2015 00:32:38 +0300 Subject: [PATCH] Organize algorithms into subpackages --- binary_search.go => search/binary_search.go | 2 +- .../binary_search_test.go | 2 +- .../binary_insertion_sort.go | 18 +++++++++--------- .../binary_insertion_sort_test.go | 2 +- insertion_sort.go => sort/insertion_sort.go | 2 +- .../insertion_sort_test.go | 2 +- sort_test.go => sort/sort_test.go | 2 +- 7 files changed, 15 insertions(+), 15 deletions(-) rename binary_search.go => search/binary_search.go (98%) rename binary_search_test.go => search/binary_search_test.go (98%) rename binary_insertion_sort.go => sort/binary_insertion_sort.go (64%) rename binary_insertion_sort_test.go => sort/binary_insertion_sort_test.go (93%) rename insertion_sort.go => sort/insertion_sort.go (98%) rename insertion_sort_test.go => sort/insertion_sort_test.go (97%) rename sort_test.go => sort/sort_test.go (97%) diff --git a/binary_search.go b/search/binary_search.go similarity index 98% rename from binary_search.go rename to search/binary_search.go index d0704b3..10e69a6 100644 --- a/binary_search.go +++ b/search/binary_search.go @@ -1,4 +1,4 @@ -package algorithms +package search // BinarySearch is an implementation of binary search algorithm. // Wikipedia: https://en.wikipedia.org/wiki/Binary_search_algorithm diff --git a/binary_search_test.go b/search/binary_search_test.go similarity index 98% rename from binary_search_test.go rename to search/binary_search_test.go index 436f361..5307543 100644 --- a/binary_search_test.go +++ b/search/binary_search_test.go @@ -1,4 +1,4 @@ -package algorithms +package search import ( "testing" diff --git a/binary_insertion_sort.go b/sort/binary_insertion_sort.go similarity index 64% rename from binary_insertion_sort.go rename to sort/binary_insertion_sort.go index abe13e6..66c587c 100644 --- a/binary_insertion_sort.go +++ b/sort/binary_insertion_sort.go @@ -1,27 +1,27 @@ -package algorithms +package sort // BinaryInsertionSort is an implementation of binary insertion sort algorithm. // Wikipedia: https://en.wikipedia.org/wiki/Insertion_sort#Variants func BinaryInsertionSort(a []int) []int { for i := 1; i < len(a); i++ { v := a[i] - low := 0 - high := i + first := 0 + last := i - for low < high { - mid := low + (high-low)/2 + for first < last { + mid := first + (last-first)/2 if v < a[mid] { - high = mid + last = mid } else { - low = mid + 1 + first = mid + 1 } } - for j := i; j > low; j-- { + for j := i; j > first; j-- { a[j] = a[j-1] } - a[low] = v + a[first] = v } return a diff --git a/binary_insertion_sort_test.go b/sort/binary_insertion_sort_test.go similarity index 93% rename from binary_insertion_sort_test.go rename to sort/binary_insertion_sort_test.go index eb12ae3..0c6d934 100644 --- a/binary_insertion_sort_test.go +++ b/sort/binary_insertion_sort_test.go @@ -1,4 +1,4 @@ -package algorithms +package sort import ( "testing" diff --git a/insertion_sort.go b/sort/insertion_sort.go similarity index 98% rename from insertion_sort.go rename to sort/insertion_sort.go index 6d439ef..89db15a 100644 --- a/insertion_sort.go +++ b/sort/insertion_sort.go @@ -1,4 +1,4 @@ -package algorithms +package sort // InsertionSort is an implementation of insertion sort algorithm. // Wikipedia: https://en.wikipedia.org/wiki/Insertion_sort diff --git a/insertion_sort_test.go b/sort/insertion_sort_test.go similarity index 97% rename from insertion_sort_test.go rename to sort/insertion_sort_test.go index 03c8346..3512379 100644 --- a/insertion_sort_test.go +++ b/sort/insertion_sort_test.go @@ -1,4 +1,4 @@ -package algorithms +package sort import ( "testing" diff --git a/sort_test.go b/sort/sort_test.go similarity index 97% rename from sort_test.go rename to sort/sort_test.go index a23825a..cff56a2 100644 --- a/sort_test.go +++ b/sort/sort_test.go @@ -1,4 +1,4 @@ -package algorithms +package sort import ( "testing"