二分法查找,冒泡排序,遞歸函數
阿新 • • 發佈:2018-08-16
pat os.path 一個 移動 pre pytho spa input int
冒泡排序
def fnc(nums): for i in range(len(nums) - 1): # 這個循環負責設置冒泡排序進行的次數 for k in range(len(nums) - i - 1): # k 為列表下標 if nums[k] > nums[k + 1]: nums[k], nums[k + 1] = nums[k + 1], nums[k] return nums
二分法與冒泡配合
lst =[12,35,32,1323,89,46,23,13,56,23,51,2,1,13,464,91,68,41,5,94,54,21,212,54] a = fnc(lst) #調用上述冒泡函數 排序 sum = int(input(‘請輸入一個數:‘)) left = 0 right = len(a) - 1 while left <= right: mid = (left + right) // 2 # 這裏必須整除 if lst[mid] > sum: #對應中間索引的數 >輸入的數 則右邊界向左移動 right = mid - 1 eliflst[mid] < sum: #對應中間索引的數 < 輸入的數,證明輸入的數在索引值的右邊,砍 #掉左邊一半,左邊界移動 left = mid + 1 else: print(‘此數在列表中‘) break else: print(‘此數不在列表中‘)
遞歸
import os def fnc(files_path,n): files = os.listdir(files_path) for file infiles: #打開文件 f_d = os.path.join(‘E:\python全棧15期‘, file) # 拿到路徑 if os.path.isdir(f_d): #判斷是否是文件夾 print(‘\t‘ * n ,file,‘:‘) fnc(f_d,n + 1) #如果是文件夾再調用一次函數,不過實參就變成了判斷的文件夾 else: print(‘\t‘ * n,file)
二分法查找,冒泡排序,遞歸函數