feat: algorithm package, BinarySearch and BinaryIterativeSearch functions

This commit is contained in:
dudaodong
2022-01-17 15:36:48 +08:00
parent b22be7cade
commit dfbb9e30e0
2 changed files with 70 additions and 0 deletions

25
algorithm/search_test.go Normal file
View File

@@ -0,0 +1,25 @@
package algorithm
import (
"testing"
"github.com/duke-git/lancet/internal"
)
var sortedNumbers = []int{1, 2, 3, 4, 5, 6, 7, 8}
func TestBinarySearch(t *testing.T) {
asssert := internal.NewAssert(t, "TestBinarySearch")
comparator := &intComparator{}
asssert.Equal(4, BinarySearch(sortedNumbers, 5, 0, len(sortedNumbers)-1, comparator))
asssert.Equal(-1, BinarySearch(sortedNumbers, 9, 0, len(sortedNumbers)-1, comparator))
}
func TestBinaryIterativeSearch(t *testing.T) {
asssert := internal.NewAssert(t, "TestBinaryIterativeSearch")
comparator := &intComparator{}
asssert.Equal(4, BinaryIterativeSearch(sortedNumbers, 5, 0, len(sortedNumbers)-1, comparator))
asssert.Equal(-1, BinaryIterativeSearch(sortedNumbers, 9, 0, len(sortedNumbers)-1, comparator))
}