氣泡排序及遞迴

2021-08-11 09:48:49 字數 946 閱讀 4875

氣泡排序:

li = [11, 2, 3, 22]

# print(len(li))

for j in range(1, len(li)):

for i in range(len(li) - j):

# 由於函式中存在li[i+1],那麼要保證li[i+1]不越界。此時就需要在迴圈範圍進行限制。從而得出i和j 的最大值。

#由於最後一次大小比較發生在li[0] 和li[1]之間,所以,i的最後一次大小應為0,得出i和j的最小值。

if li[i] > li[i + 1]:

temp = li[i]

li[i] = li[i + 1]

li[i + 1] = temp

print(li)

遞迴程式呼叫自身的程式設計技巧稱為遞迴( recursion)

在函式內部,可以呼叫其他函式。如果乙個函式在內部呼叫自身本身,這個函式就是遞迴函式。

使用遞迴函式需要注意防止棧溢位。在計算機中,函式呼叫是通過棧(stack)這種資料結構實現的,每當進入乙個函式呼叫,棧就會加一層棧幀,每當函式返回,棧就會減一層棧幀。由於棧的大小不是無限的,所以,遞迴呼叫的次數過多,會導致棧溢位。

使用遞迴函式解決菲波那切數列

遞迴函式的呼叫和返回流程。

def

fib(a, b, depth):

if depth > 4:

return a

c = a + b

ret = fib(b, c, depth + 1)

print(a)

return ret

ret = fib(0, 1, 1)

print(ret)

氣泡排序及遞迴

1,氣泡排序 原理 目的 按從小到大排序。方法 假設存在陣列 10,8,3,5,6,7,9 第一輪比較相鄰兩個元素,如果左邊元素大於右邊元素,則交換。以此類推,第一輪比較之後的結果是 3,10,8,5,6,7,9 經過第一輪比較,最小的元素跑到了第乙個,所以第二輪比較,第乙個元素不需要進行比較了。第...

氣泡排序,,,,遞迴

第一種 這種方法氣泡排序 比較相鄰的兩個元素,如果前乙個比後乙個大,則交換位置。第一輪把最大的元素放到了最後面。由於每次排序最後乙個都是最大的,所以之後按照步驟1排序最後乙個元素不用比 function arr sort data arr sort arr 第二種方法時對氣泡排序的改進 宣告乙個變數...

氣泡排序 遞迴

一 氣泡排序 1思想 氣泡排序思想 每一次對比相鄰兩個資料的大小,小的排在前面,如果前面的資料比後面的大就交換這兩個數的位置 要實現上述規則需要用到兩層for迴圈,外層從第乙個數到倒數第二個數,內層從外層的後面乙個數到最後乙個數 2特點 排序演算法的基礎。簡單實用易於理解,缺點是比較次數多,效率較低...