Python常用演算法(一)

2022-07-27 07:36:11 字數 1833 閱讀 7945

1.選擇排序

不斷找到最小的(找最大的也是可以的)

首先拿到第乙個,然後發現比它小的,記住下標。迴圈一輪,找到最小的數的位置 和 最左邊的數交換位置

然後從第二個開始....和第二個交換位置,迴圈最後變得有序

#

coding=utf-8

defselect_sort(list):

for i in

range(len(list)):

min =i

for j in range(i+1,len(list)):

if list[min]>list[j]:

min =j

list[min], list[i] =list[i], list[min]

return

list

a = select_sort([1,4,2,8,6,9,10])

print(a)

2.氣泡排序

首先拿到第乙個元素,和它第二個作比較,把較大的數放在右邊

第二個再和第三個比較。。。。一輪下來,最後乙個就是最大的數

再一輪,倒數第二個也變成有序的......最終都變成有序的

def

bubble_sort(lists):

count =len(lists)

for i in

range(0,count):

for j in range(i+1,count):

if lists[i] >lists[j]:

lists[i], lists[j] =lists[j], lists[i]

return

lists

a = bubble_sort([3,2,1,6,9,5])

print(a)

def

bubble_sort(list):

for i in

range(len(list)):

for j in range(len(list)-i-1):

if list[j] > list[j+1]:

list[j], list[j+1] = list[j+1], list[j]

return

list

a = bubble_sort([3,2,10,6,9,5])

print(a)

3.插入排序

起始有乙個值,在隨便插入乙個值,然後兩者比較,看是否需要交換位置,兩個值就變得有序了

依此類似再逐漸插入值,最後變成有序序列

def

insert_sort(list):

for i in range(1,len(list)):

for j in

range(0,i):

if list[i]list[i], list[j] =list[j],list[i]

return

list

a = insert_sort([2,1,5,4,6,7,3])

print(a)

def

insert1_sort(list):

for i in range(1, len(list)):

key =list[i]

j = i-1

while j >=0:

if list[j] >key:

list[j+1] =list[j]

list[j] =key

j -= 1

return

list

a1 = insert1_sort([2,1,5,4,6,7,3])

print(a1)

Python 常用演算法

百錢百雞 公雞5元乙隻,母雞3元乙隻,小雞1元三隻 用100元買100隻雞,問公雞 母雞 小雞各多少只 for x in range 20 for y in range 33 z 100 x y if5 x 3 y z 3 100and z 3 0 print x,y,z 五人分魚 abcde五人在...

python常用演算法

排序演算法可以分為內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序演算法有 插入排序 希爾排序 選擇排序 氣泡排序 歸併排序 快速排序 堆排序 基數排序等。用一張圖概括 改進1 def bub...

python 常用演算法練習

toc python 常用演算法練習 1.斐波那契數列 2.九九乘法表 3.else 學習更新 1.斐波那契數列 斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的...