每周算法编程联系1

在一个有序的列表中,查找指定数字的索引位置:

mylist = [1,2,3,4,5,6,7,8,9,10,11]

# list_len = mylist.__len__()
# print list_len


def find_number_index(list,target,start):
length = list.__len__()
print "--- "+str(length)
mid = int(length/2)

if mid <=1 :
if list[mid] == target:
return "find index: " + str(mid+ start)
elif list[mid-1] == target:
return "find index: " + str(mid -1+ start)
elif length == 3 and list[mid+1] == target :
return "find index: " + str(mid + 1 + start)
else:
return "could not mad a number"
elif list[mid] == target:
print " mylist[mid] == target "
return "find index: " + str(mid + start)
elif list[mid] > target:
print str(list[mid]) + " mylist[mid] > target "
list_min = list[:mid]
print list_min
return find_number_index(list_min,target,start)
else :
print " mylist[mid] < target "
list_max = list[mid:]
print list_max
return find_number_index(list_max,target, start+mid)


if __name__=="__main__":
print find_number_index(mylist,3, 0)

猜你喜欢

转载自www.cnblogs.com/linlianhuan/p/9265966.html