冒泡, 插排
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、我首先要有前兩個數
方法一 遞迴:
deffib(num):
if num == 1:
return 1
elif num == 2:
return 2
return fib(num - 1) + fib(num - 2)
方法二:
deffib2(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氣泡排序
需求 對於一串不知道個數的無序數進行從大到小或從小到大排序。氣泡排序 思想 首先第乙個數與第二個數做比較,大者放後面作為新的第二個數,然後,第二個數再與第三個數作比較,大者放後面作為新的第三個數,以此類推,相鄰兩位置數比較大小,若前者大於後者,則交換位置,這樣遍歷完一次資料就把最大數放在了最後面,即...