1:冒泡排序
def func(alist):
for x in range(1,len(alist)): # x 就是 1 到 传过来的这个参数的长度总值
for i in range(0,len(alist)-x): # i 就是 传过来的列表长度 - 去 x
if alist[i] > alist[i+1]: # 如果下标i 小于i+1
alist[i], alist[i+1] = alist[i+1], alist[i] # 那么 下标i 与 下标 i+1 互换位置
return alist # 返回排序后的列表
print(func([1,4,2,3,6,7,8,9,0,5])) # 输出 func([1,4,2,3,6,7,8,9,0,5]) 这句话就是 向func函数中传递参数
2:选择排序
def func(alist):
for x in range(0,len(alist)): # x 就是 1 到 传过来的这个参数的长度总值
min_num = alist[x] # min_num就等于每次循环的下标对应数字
for i in range(x+1,len(alist)): # 循环下标x+1 到所有下标长度
if alist[i] > min_num: # 如果下标i的参数大于min_num >号是降序 < 是升序
alist[i], min_num = min_num, alist[i] # 互换位置(参数)
alist[x] = min_num
return alist # 返回排序过的列表
print(func([1,4,2,3,6,7,8,9,0,5])) # 向func函数传递参数
3:二分法
def func(alist, item):
low = 0
high = len(alist)-1
n = 0
while low <= high:
mid = int((low + high)/2)
n += 1
if alist[mid]==item:
return mid
if alist[mid]<item:
low = mid + 1
else:
high = (mid-1)
return None
m=[1,2,3,4,8,9,11,12,14,18,19,20,28]
print(func(m,14))