summaryrefslogtreecommitdiffstats
path: root/funtools/bsearch.c
diff options
context:
space:
mode:
Diffstat (limited to 'funtools/bsearch.c')
-rw-r--r--funtools/bsearch.c68
1 files changed, 0 insertions, 68 deletions
diff --git a/funtools/bsearch.c b/funtools/bsearch.c
deleted file mode 100644
index df69ca2..0000000
--- a/funtools/bsearch.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* http://www.tbray.org/ongoing/When/200x/2003/03/22/Binary */
-
-/* returns first target if more than one have same value */
-static public int search(int [] array, int target)
-{
- int high = array.length, low = -1, probe;
- while (high - low > 1)
- {
- probe = (high + low) / 2;
- if (array[probe] < target)
- low = probe;
- else
- high = probe;
- }
- if (high == array.length || array[high] != target)
- return -1;
- else
- return high;
-}
-
-/* returns last target if more than one have same value */
-static public int search2(int [] array, int target)
-{
- int high = array.length, low = -1, probe;
- while (high - low > 1)
- {
- probe = (high + low) / 2;
- if (array[probe] > target)
- high = probe;
- else
- low = probe;
- }
- if (low == -1 || array[low] != target)
- return -1;
- else
- return low;
-}
-
-static public int [] range(int [] array, int floor, int ceiling)
-{
- int [] answer = new int[2];
- int high, low, probe;
-
- // work on floor
- high = array.length; low = -1;
- while (high - low > 1)
- {
- probe = (high + low) / 2;
- if (array[probe] < floor)
- low = probe;
- else
- high = probe;
- }
- answer[0] = low;
-
- // work on ceiling
- high = array.length; low = -1;
- while (high - low > 1)
- {
- probe = (high + low) / 2;
- if (array[probe] > ceiling)
- high = probe;
- else
- low = probe;
- }
- answer[1] = high;
- return answer;
-}