算法








递归的使用

#递归的使用 def func(x): if x>0: print('抱着',end='') func(x-1) print('的我',end='') else: print('我的小鲤鱼',end='') func(5)



重点 LowB三人组


冒泡算法的代码
def bubble_sort(li): for i in range(len(li)-1): exchange=False #定义一个终止条件,意思是当下边的循环中无法再找到右边比左边大的情况下,exchange就是False了, for j in range(len(li)-i-1): if li[j]>li[j+1]: li[j],li[j+1]=li[j+1],li[j] exchange=True if not exchange: #完成排序后跳出循环,省去再次无谓的循环的时间等消耗 return None
#使用此内容 import random li=list(i for i in range(100)) random.shuffle(li) print(li,type(li),len(li)) bubble_sort(li) print(li)
选择排序


代码
def select_sort(li): for i in range(len(li) - 1): min_loc = i for j in range(i+1, len(li)): if li[j] < li[min_loc]: min_loc = j if min_loc != i: li[i], li[min_loc] = li[min_loc], li[i]


代码
def insert_sort(li): for i in range(1, len(li)):#这句话的功能是从所以为1的位置开始循环,因为第索引为0的位置要保留下来,等待与后边的数据进行对比 tmp = li[i] j = i - 1 #初始为索引为0的数值,。 while j >= 0 and tmp < li[j]: li[j + 1] = li[j] j = j - 1 li[j + 1] = tmp


函数
def quick_sort(data, left, right): if left < right: mid = partition(data, left, right) quick_sort(data, left, mid - 1) quick_sort(data, mid + 1, right)
partition函数
def partition(data, left, right): tmp = data[left] while left < right: while left < right and data[right] >= tmp: right -= 1 data[left] = data[right] while left < right and data[left] <= tmp: left += 1 data[right] = data[left] data[left] = tmp return left












、


解决方案






浙公网安备 33010602011771号