lecture #8
def exp1(a,b):
ans = 1
while (b>0):
ans *= a
b -=1
return ans
def exp2(a,b):
if b==1:
return a
else: return a*exp2(a,b-1)
def exp3(a,b):
if b==1:
return a
if b%2 ==0:
return exp3(a*a,b/2)
else: return a*exp3(a,b-1)
def g (n,m):
x = 0
for i in range(n):
for j in range(m):
x+=1
return x
def Towers(size,fromStack,toStack,sparseStack):
if size == 1:
print 'Move disk from',fromStack,'to',toStack
else:
Towers(size-1,fromStack,sparseStack,toStack)
Towers(1,fromStack,toStack,sparseStack)
Towers(size-1,sparseStack,toStack,fromStack)
def search(s,e):
answer = None
i = 0
numCompares =0
while i numCompares +=1 if e==s[i]: answer = True elif e < s[i]: answer = False i +=1 print answer, numCompares def bsearch(s,e,first,last): print first, last if (last -first)< 2 : return s[first]==e or s[last]==e mid = first + (last-first)/2 if s[mid] == e: return True if s[mid] > e: return bsearch(s,e,first,mid-1) else: bsearch(s,e,mid+1,last) def search1(s,e): print bsearch(s,e,0,len(s)-1) print 'Search Completed!' def testSearch(): s = range(0,1000000) raw_input('basic -1') print search(s,-1) raw_input('binary -1') print search1(s,-1)