python基础(算法)
1.一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
def jumpFloolr(number): if number in (1,2): return number return jumpFloolr(number-1)+jumpFloolr(number-2) b=jumpFloolr(10) print(b)
2.等边三角形
num=9 for i in range(num,0,-1): print(i * ' ' + (num + 1 - i) * '*' + +(num - i) * '*')
3.直角三角形
i = 0 while i < 5: j = 0 while j <= i: print("*", end="") j += 1 print("") i += 1
斐波那契数列,又称黄金分割数列、因数学家列昂纳多·
# 斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,
# 指的是这样一个数列:1、1、2、3、5、8、13、21、34、
# ……在数学上,斐波纳契数列以递归的方法定义。
lis = [] for i in range(20): if i == 0 or i == 1: # 第1,2项 都为1 lis.append(1) else: lis.append(lis[i - 2] + lis[i - 1]) # 从第3项开始每项值为前两项值之和 print(lis)
冒泡排序
def buttle_sort(li): for i in range(len(li)-1): for j in range(len(li)-i-1): if li[j] > li[j+1]: li[j],li[j+1] = li[j+1],li[j] li = [3,6,4,8,5,3] buttle_sort(li) print(li)
二分查找
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))
快排
def quick(list): if len(list) < 2: return list tmp = list[0] # 临时变量 可以取随机值 left = [x for x in list[1:] if x <= tmp] # 左列表 right = [x for x in list[1:] if x > tmp] # 右列表 return quick(left) + [tmp] + quick(right) li = [4,3,7,5,8,2] print quick(li) # [2, 3, 4, 5, 7, 8]

浙公网安备 33010602011771号