二分法查找,冒泡排序,递归函数
冒泡排序
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 elif lst[mid] < sum: #对应中间索引的数 < 输入的数,证明输入的数在索引值的右边,砍 #掉左边一半,左边界移动 left = mid + 1 else: print('此数在列表中') break else: print('此数不在列表中')
递归
import os def 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)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步