• 递归函数,冒泡排序


    递归: 在函数中调用函数本身. 就是递归

    def func():
     print("我是谁")
     func()
    func()

    在python中,递归的深度最大到998

    def foo(n):
     print(n)
     n += 1
     foo(n)
    foo(1)

    递归的应用: 我们可以使用递归来遍历各种树形结构, 比如我们的文件夹系统. 可以使用递归来遍历该文件夹中的所有文件

    遍历 D:/作业 文件夹, 打印出所有的文件和普通文件的文件名
    import os
    def func(filepath,n):
        # 1,打开这个文件
        files=os.listdir(filepath)
        # 2,拿到每一个文件名
        for file in files:  #文件名
            # 3,获取到路径
            f_d=os.path.join(filepath,file) # d:/课程/文件名/
            # 4,判断是否是文件夹
            if os.path.isdir(f_d):
                # 5,如果是文件夹,再来一遍
                print('	'*n,file)     #打印文件名
                func(f_d,n+1)
            else:               #如果不是文件夹
                print('	'*n,file)
    func('D:课程',0)

    冒泡排序

    冒泡排序的思想: 每次比较两个相邻的元素, 如果他们的顺序错误就把他们交换位置

    import random
    def bubble_sort(li):
    for i in range(len(li)-1): # i表示第n趟 一共n或者n-1趟
    exchange = False
    for j in range(len(li)-i-1): # 第i趟 无序区[0, n-i-1] j表示箭头 0~n-i-2
    if li[j] > li[j+1]:
    li[j], li[j+1] = li[j+1], li[j]
    exchange = True
    if not exchange:
    break


    li = list(range(10000))
    random.shuffle(li)
    bubble_sort(li)
    # 最好情况O(n) 平均情况O(n^2) 最坏情况O(n^2)

    缺点: 冒泡排序解决了桶排序浪费空间的问题, 但是冒泡排序的效率特别低

  • 相关阅读:
    CSS3——复杂选择器
    单元测试覆盖率设置
    你必须了解的「架构」小历史
    js正则表达式:学习网址和部分正则验证
    转: js实现全角半角检测的方法
    Linux and the Unix Philosophy(1)
    HTML DOM 对象
    理解css中的 content:" " 是什么意思
    JS
    js
  • 原文地址:https://www.cnblogs.com/feifeifeisir/p/9483930.html
Copyright © 2020-2023  润新知