zoukankan      html  css  js  c++  java
  • 二分法查找,冒泡排序,递归函数

    冒泡排序

    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('	' * n ,file,':')
                fnc(f_d,n + 1)      #如果是文件夹再调用一次函数,不过实参就变成了判断的文件夹
            else:
                print('	' * n,file)
  • 相关阅读:
    IT小小鸟读后感
    关于C语言的问卷调查
    (学习进度表)【第六周】
    (学习进度表)【第五周】
    作业二(过早的放弃是失败的根源)
    读《世界是数字的》笔记
    作业3(学习进度表)【第四周】
    作业1
    读《我是一只IT小小鸟》笔记
    价值观作业
  • 原文地址:https://www.cnblogs.com/--kai/p/9484171.html
Copyright © 2011-2022 走看看