遞迴函式,氣泡排序

2022-05-01 16:00:13 字數 1373 閱讀 8722

def

func():

print("

我是誰"

) func()

func()

在python中,遞迴的深度最大到998

def

foo(n):

print

(n) n += 1foo(n)

foo(1)

遞迴的應用: 我們可以使用遞迴來遍歷各種樹形結構, 比如我們的資料夾系統. 可以使用遞迴來遍歷該資料夾中的所有檔案

遍歷 d:/作業 資料夾, 列印出所有的檔案和普通檔案的檔名

import

osdef

func(filepath,n):

#1,開啟這個檔案

files=os.listdir(filepath)

#2,拿到每乙個檔名

for file in files: #

檔名#

3,獲取到路徑

f_d=os.path.join(filepath,file) #

d:/課程/檔名/

#4,判斷是否是資料夾

ifos.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)

缺點: 氣泡排序解決了桶排序浪費空間的問題, 但是氣泡排序的效率特別低

氣泡排序,,,,遞迴

第一種 這種方法氣泡排序 比較相鄰的兩個元素,如果前乙個比後乙個大,則交換位置。第一輪把最大的元素放到了最後面。由於每次排序最後乙個都是最大的,所以之後按照步驟1排序最後乙個元素不用比 function arr sort data arr sort arr 第二種方法時對氣泡排序的改進 宣告乙個變數...

氣泡排序 遞迴

一 氣泡排序 1思想 氣泡排序思想 每一次對比相鄰兩個資料的大小,小的排在前面,如果前面的資料比後面的大就交換這兩個數的位置 要實現上述規則需要用到兩層for迴圈,外層從第乙個數到倒數第二個數,內層從外層的後面乙個數到最後乙個數 2特點 排序演算法的基礎。簡單實用易於理解,缺點是比較次數多,效率較低...

氣泡排序及遞迴

氣泡排序 li 11,2,3,22 print len li for j in range 1,len li for i in range len li j 由於函式中存在li i 1 那麼要保證li i 1 不越界。此時就需要在迴圈範圍進行限制。從而得出i和j 的最大值。由於最後一次大小比較發生在...