python**:
"""基礎知識:遞迴函式(函式在內部呼叫自身,這個函式就是遞迴函式)
計算1-n的整數之和
sum = n + (n-1) + (n-1-1) + ... + 1
"""def
fact(n):
if n==1:
return 1
return n + fact(n - 1)
n = 10s = fact(10)
print("
\r\n1-%s的整數之和是:%s
" %(n,s))
"""基礎知識:列表推導式(通過for迴圈判斷是否符合條件的方式從a列表中推導出b列表)
取出m以下的偶數
例如11以下偶數有:0,2,4,6,8,10
"""m = 11arr = [x for x in range(0, m) if x%2 ==0]
print("
\r\n%s以下偶數有:%s
" %(m,arr))
"""利用遞迴函式和列表推導式實現快速排序
快速排序的處理邏輯:
1、選擇1個數為基準(例如第1個數)
2、將待排序的數與逐個基準比較,分割成小於等於基準和大於基準的兩部分
每部分重複以上1、2步驟
本例中:
1、以第1個數4為基準
2、得到第1部分,小於等於4的陣列[1,2,4,0]
3、得到第2部分,大於4的陣列[6,9,8,7,5]
4、分別對兩部分陣列遞迴
注意:第1部分+基準+第2部分 是每次排序後的結果
"""def
quicksort(lst):
if len(lst) <= 1:
return
lst
#以第乙個數
left = [l for l in lst[1:] if l<=lst[0]]
right = [r for r in lst[1:] if r>lst[0]]
return quicksort(left) + lst[0:1] +quicksort(right)
lists = [4, 6, 9, 1, 8, 7, 2, 5, 4, 0]
print("
\r\n排序前: %s\r\n
" %lists)
print("
排序後: %s
" % quicksort(lists))
輸出結果:
e:\python\algorithm>python3 quicksort.py1-10的整數之和是:5511以下偶數有:[0, 2, 4, 6, 8, 10]
排序前: [4, 6, 9, 1, 8, 7, 2, 5, 4, 0]
排序後: [0, 1, 2, 4, 4, 5, 6, 7, 8, 9]
*****結束*****
python 遞迴(附利用棧和佇列模擬遞迴)
凡是迴圈能幹的事,遞迴都能幹12 34方法 1 寫出臨界條件 2 找這一次和上一次的關係 3 假設當前函式已經能用,呼叫自身計算上一次的結果再求出本次的結果 下面我們通過兩段 簡單看一下遞迴和非遞迴的區別 輸入乙個大於等於1的數,求1到n的和!1 普通函式方法 2 3 def hanshu n 4 ...
python遞迴函式和匿名函式
乙個函式的內部可以呼叫其他函式。但是,如果乙個函式在內部不呼叫其他函式,而是自己本身的話,這個函式就是遞迴函式。例 def fn num if num 1 result 1else result fn num 1 num return result n int input 請輸入乙個正整數 prin...
python匿名函式和遞迴函式
匿名函式格式 lambda 引數 運算 例子 hello lambda a,b a b 匿名函式一半結合內建函式使用 max list,func func匿名函式比如 列表裡面元素是字典 就是可以 list,lambda x x 鍵 min 和max幾乎一樣 map func iterables 對...