From b867cd616a49f2c80b5558df3193c00d0f4fd8d8 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Sun, 18 Nov 2012 20:19:47 -0500 Subject: [PATCH] Adding implementation of binary search rank --- .../src/meatballhat.com/algs4/binarysearch.go | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 algs4/src/meatballhat.com/algs4/binarysearch.go diff --git a/algs4/src/meatballhat.com/algs4/binarysearch.go b/algs4/src/meatballhat.com/algs4/binarysearch.go new file mode 100644 index 0000000..7d51f0f --- /dev/null +++ b/algs4/src/meatballhat.com/algs4/binarysearch.go @@ -0,0 +1,21 @@ +package algs4 + +func BinarySearchRank(key int, a []int) int { + lo := 0 + hi := len(a) - 1 + + var mid int + + for lo <= hi { + mid = lo + (hi - lo) / 2 + if key < a[mid] { + hi = mid - 1 + } else if key > a[mid] { + lo = mid + 1 + } else { + return mid + } + } + + return -1 +}