二分查找
def erfen(alist, item):
first = 0
last = len(alist) - 1
while first <= last:
mid = (first + last) // 2
if item == alist[mid]:
return True, alist.index(item)
else:
if item > alist[mid]:
first = mid + 1
else:
last = mid - 1
return False
print(erfen([1,2,3,4,5,6,7],1))
def erfen(ulist,item):
if len(ulist)==0:
return False
else:
mid=len(ulist)//2
if item == ulist[mid]:
return True,ulist.index(item)
elif item<ulist[mid]:
return erfen(ulist[:mid],item)
else:
return erfen(ulist[mid+1:],item)
print(erfen([1,3,4,5,6],3))
冒泡排序
alist=[5,3,2,1,9,55,33]
def fun(alist):
for x in range(1,len(alist)):
for y in range(0,len(alist)-x):
if alist[y] < alist[y+1]:
alist[y],alist[y+1]=alist[y+1],alist[y]
return alist
print(fun(alist))
选择排序
alist=[4,3,2,9,6,4]
def xuan(alist):
for x in range(0,len(alist)):
num=alist[x]
for i in range(x+1,len(alist)):
if alist[i] < num:
alist[i],num = num,alist[i]
alist[x] = num
return alist
print(xuan(alist))