標籤:尋找 證明 冒泡排序 lse listdir port code 全棧 col
冒泡排序
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 = 0right = len(a) - 1while left <= right: mid = (left + right) // 2 # 這裡必須整除 if lst[mid] > sum: #對應中間索引的數 >輸入的數 則右邊界向左移動 right = mid - 1 elif lst[mid] < sum: #對應中間索引的數 < 輸入的數,證明輸入的數在索引值的右邊,砍 #掉左邊一半,左邊界移動 left = mid + 1 else: print(‘此數在列表中‘) breakelse: print(‘此數不在列表中‘)
遞迴
import osdef fnc(files_path,n): files = os.listdir(files_path) for file in files: #開啟檔案 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)
二分法尋找,冒泡排序,遞迴函式