package main;
import com.google.common.collect.Lists;
import java.util.ArrayList;
/**
* Created by shandaiwang on 2016/11/18.
*/
public class BinarySearchDemo {
public static void main(String[] args) {
ArrayList<Integer> items = Lists.newArrayList();
for(int i = 0; i < 10; i++) {
items.add(2 * i);
}
System.out.println(items);
System.out.println(search(items, 7));
System.out.println(search(items, 6));
}
private static int search(ArrayList<Integer> items, int target) {
int low = 0;
int high = items.size() - 1;
while(low <= high) {
int mid = (high + low) / 2;
int midVal = items.get(mid);
if(midVal < target) {
low = mid + 1;
} else if (midVal > target){
high = mid - 1;
} else {
return mid;
}
}
return -1;
}
}
# -*- coding: utf-8 -*-
def binary_search(items, target):
low = 0
high = len(items) - 1
while low <= high:
mid = (low + high) / 2
mid_val = items[mid]
if mid_val > target:
high = mid - 1
elif mid_val < target:
low = mid + 1
else:
return mid
return -1
items = []
for i in range(10):
items.append(i * 2)
print binary_search(items, 7)
print binary_search(items, 6)