#!/usr/bin/python
#define initial index 0, and max index length-1
#find ip_num in ip_lib_list
ip_num = 15
ip_lib_list = [[2, 2, 3], [5, 3, 4], [7, 4, 5], [8, 5, 6], [12, 7, 8],[15, 9, 0], [19, 0, 1]]
low_index = 0
mid_index = 0
high_index = len(ip_lib_list) - 1
char = 0
while (low_index < high_index):
#define mid_index initial value equal half of low index and high index
mid_index = int((low_index + high_index) / 2)
sss = ip_lib_list[mid_index]
start_ip = sss[0]
if ip_num < start_ip:
high_index = int(mid_index - 1)
if ip_num > start_ip:
low_index = int(mid_index + 1)
elif ip_num == start_ip:
char = ip_lib_list[mid_index]
#if the value we want is find now, then skip next loops
low_index = high_index
#if we already find the value, then just print out
#if not, it means either the ip_num in low_index=0 or high_index=len(ip_lib_list) - 1
if char == 0:
if ip_num < start_ip:
provice = ip_lib_list[mid_index-1]
print("%s" % (provice))
else:
mid_index = int((low_index + high_index) / 2)
provice = ip_lib_list[mid_index]
print("%s" % (provice))
else:
print("%s" % (char))