递归函数,冒泡排序

递归: 在函数中调用函数自己. 就是递归

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

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

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

递归的应用: 咱们能够使用递归来遍历各类树形结构, 好比咱们的文件夹系统. 能够使用递归来遍历该文件夹中的全部文件dom

遍历 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('\t'*n,file)     #打印文件名
            func(f_d,n+1)
        else:               #若是不是文件夹
            print('\t'*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)

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

相关文章
相关标签/搜索