python 氣泡排序

2022-05-10 00:46:12 字數 1645 閱讀 8267

冒泡, 插排

lst = [22 , 2 , 55 , 6 , 4 , 1]

for s in range(len(lst)):     #  限制下面的迴圈次數

i = 0   # lst的索引是從0開始的,所以限定i 的初始值為0

while i < len(lst) - 1:  # lst 的 len(lst)值是從1開始的, 並且 進行比較數字移動到i相應位置 的時候不需要再進項下面的比較,  所以在len(lst)的基礎上減去1.

if lst[i] > lst[i + 1]:  # 進行比較    並解包 調換位置.

lst[i] , lst[i + 1] = lst[i + 1] , lst[i]

i = i + 1 #  進行累加,是迴圈持續進行.

print(lst)#  列印最後結果

斐波那契數列:

# 1、斐波那契數列:1, 2, 3, 5, 8, 13, 21.....根據這樣的規律,程式設計求出400萬以內最大的斐波那契數,並求出他是第幾個斐波那契數。

# n1 = 3

# n2 = 5

# num = n1 + n2

# n1 = n2

# n2 = n1 + n2

#1、我首先要有前兩個數

方法一   遞迴:

def

fib(num):

if num == 1:

return 1

elif num == 2:

return 2

return fib(num - 1) + fib(num - 2)

方法二:

def

fib2(num):

n1 = 1n2 = 2

if num == 1:

return 1

elif num == 2:

return 2

else

:

for i in range(3,num + 1):#

range(3,3)

n1 , n2 = n2 , n1 +n2

return

n2fib2(33)

水仙花數方法:

for num in range(100, 1000):

gewei = num % 10baiwei = int(num / 100)

shiwei = int((num - baiwei * 100) / 10)

sum = gewei**3 + shiwei**3 + baiwei**3

if sum ==num:

print("

%d是水仙花數

" %num)

for n in range(100, 1000):

i =int(str(n)[0])

j = int(str(n)[1])

k = int(str(n)[2])

if n == i**3 + j**3 + k**3:

print(n)

排序 氣泡排序 Python

依次比較相鄰兩元素的大小,順序與要求的不一致就交換。這樣會把待排序序列中的最大 最小 元素不斷 浮 到最右端,最終完成公升序或降序排列。對序列 2,4,1,3,6,5 按公升序排列 只記錄有交換發生的迴圈 第一次迴圈 2,4,1,3,6,5 2,1,4,3,6,5 2,1,3,4,6,5 2,1,3...

Python排序 氣泡排序

排序 氣泡排序 氣泡排序演算法的原理如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需...

Python氣泡排序

需求 對於一串不知道個數的無序數進行從大到小或從小到大排序。氣泡排序 思想 首先第乙個數與第二個數做比較,大者放後面作為新的第二個數,然後,第二個數再與第三個數作比較,大者放後面作為新的第三個數,以此類推,相鄰兩位置數比較大小,若前者大於後者,則交換位置,這樣遍歷完一次資料就把最大數放在了最後面,即...