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(c):

n = len(c)

# 遍历所有数组元素

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(c)

print("排序后的数组:")

for i in range(len(c)):

print("%d" % c[i]),

原文地址:https://www.cnblogs.com/Swx1030/p/14146465.html