python 的基本算法
二分查找
def a(arr, l, r, x):
基本判断
if r >= l:
mid = int(l + (r - l) / 2)
元素整好的中间位置
if arr[mid] == x:
return mid
元素小于中间位置的元素,只需要再比较左边的元素
elif arr[mid] > x:
return a(arr, l, mid - 1, x)
元素大于中间位置的元素,只需要再比较右边的元素
else:
return a(arr, mid + 1, r, x)
else:
不存在
return -1
if name == ‘main’:
测试数组
arr = [2, 3, 4, 10, 40]
x = 10
函数调用
result = a(arr, 0, len(arr) - 1, x)
if result != -1:
print(“元素在数组中的索引为 %d” % result)
else:
print(“元素不在数组中”)
def fib_recur(n):
assert n >= 0, “n > 0”
if n <= 1:
return n
return fib_recur(n - 1) + fib_recur(n - 2)
for i in range(1, 100):
print(fib_recur(i), end=’ ')
冒泡
def a©:
n = len©
遍历所有数组元素
for i in range(n):
Last i elements are already in place
for j in range(0, n - i - 1):
if c[j] > c[j + 1]:
c[j], c[j + 1] = c[j + 1], c[j]
c = [64, 34, 25, 12, 22, 11, 90]
a©
print(“排序后的数组:”)
for i in range(len©):
print("%d" % c[i]),