In [3]:
def binarySearch(l,elem):
low = 0
high = len(l)-1
while low<high:
mid = (low + high)/2
if l[mid] == elem:
return mid
elif l[mid]>elem:
high = mid-1
elif l[mid]<elem:
low = mid+1
else:
return 'not found'
In [5]:
binarySearch([1,2,3,4],9)
Out[5]:
In [3]:
def bubbleSort(l):
for i in xrange(len(l)):
for j in xrange(1,len(l)-i):
if l[j-1]>l[j]:
l[j],l[j-1] = l[j-1],l[j]
print l
In [4]:
bubbleSort([1004,2,5,4,31])
In [19]:
def selectionSort(l):
for i in xrange(len(l)):
k = i
for j in xrange(i,len(l)):
if l[j]<l[k]:
k = j
print l
l[i],l[k] = l[k],l[i]
return l
In [20]:
selectionSort([95,5,4,3,4,2,1])
Out[20]:
In [23]:
def insertionSort(l):
for j in xrange(1,len(l)):
key = l[j]
i = j-1
while(i>-1 and l[i]>key):
l[i+1] = l[i]
i-=1
l[i+1] = key
return l
In [45]:
insertionSort([1,2,34,4,99,33,22,11,1000004])
Out[45]:
In [35]:
def selectionSort(l):
for i in xrange(len(l)):
k = i
for j in xrange(i,len(l)):
if l[j]<l[k]:
k = j
l[k],l[i] = l[i],l[k]
return l
In [36]:
selectionSort([1,2,3,4,5,6,7,8,1,33,22])
Out[36]:
In [44]:
def insertionSort(l):
for i in xrange(1,len(l)):
key = l[i]
j = i-1
while j>-1 and l[j]>key:
l[j+1] = l[j]
j-=1
l[j+1] = key
return l
In [ ]: