Python学习_冒泡排序 & 递归排序
冒泡排序:
#!/usr/bin/env python # -*- coding:utf-8 -*- LI = [1, 22, 5, 88, 44, 8, 555, 9] # 冒泡排序需要进行n-1次才能完成,n为元素总个数 for x in range(1, len(LI)): # 一次冒泡只能选择出一个最大值 # 循环每次都需要-1,防止下标越界,最多循环到倒数第二个 # 每次进行一次排序后,下次循环次数减少一次 for i in range(0, len(LI) - x): # print(LI[i], LI[i + 1]) if LI[i] > LI[i + 1]: temp = LI[i] LI[i] = LI[i + 1] LI[i + 1] = temp else: pass print(LI)
递归排序:
#!/usr/bin/env python # -*- coding:utf-8 -*- # 斐波那契数列 # 0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610 # 全局变量使用结论:引用全局变量,不需要golbal声明,修改全局变量,需要使用global声明, # 特别地,列表、字典等如果只是修改其中元素的值,可以直接使用全局变量,不需要global声明。 TEMP = 1 def f4(a1, a2): if a1 > 10000: return "xxx" print(a1, a2) # global TEMP # TEMP = TEMP + 1 a3 = a1 + a2 ret = f4(a2, a3) return ret print(f4(0, 1)) # 获取第10个斐波那契数字 def f5(depth, a1, a2): print(depth) if depth == 10: return a1 a3 = a1 + a2 r = f5(depth + 1, a2, a3) return r ret = f5(1, 0, 1) print(ret)