Python 演算法一

2021-09-29 07:58:12 字數 991 閱讀 6387

# 簡單選擇排序

# 每一趟從待排序的資料元素中選出最小(最大)的元素

# 順序放到數列最前,直到全部待排序的資料元素全部遍歷完

def jian_xuanze_sort(a):

length = len(a)-1 # 剩餘待排序個數

for temp in range(0, length):

count = temp # 記錄當前下標

for i in range(temp, length): # 找出下標後所有資料裡最小資料

if a[count] > a[i+1]:

count = i + 1

a[temp],a[count] = a[count], a[temp]

print(a)

nums = [9, 3, 1, 4, 2, 7, 8, 6, 5]

jian_xuanze_sort(nums)

# 插入排序思想:每一趟將乙個待排序元素,按其排序碼大小

# 插入到前面已經排好序的一組元素的適當位置上,直到所有待排序元素元素全部插入為止

## 直接插入排序

# 直接插入排序是假定前i個構成的子串行是處於已排序的情況下進行排序的,

def zhi_cha_sort(nums):

for i in range(1, len(nums)): # 預設第一是有序的,後面是待排序數

while nums[i] < nums[i - 1]: # 當前判斷的數與前乙個相比如果小則交換位置

nums[i], nums[i - 1] = nums[i - 1], nums[i]

i -= 1

if i == 0: # 到第乙個位置退出迴圈

break

print(nums)

nums = [9, 3, 1, 4, 2, 7, 8, 6, 5]

zhi_cha_sort(nums)

python演算法 加一

給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。最高位數字存放在陣列的首位,陣列中每個元素只儲存單個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。這裡用到了遞迴的方法,最後乙個元素加一,如果最後乙個元素加一之後大於9,就進製 本位歸零,上一位加一,再檢測上一位,如果上一...

Python常用演算法(一)

1.選擇排序 不斷找到最小的 找最大的也是可以的 首先拿到第乙個,然後發現比它小的,記住下標。迴圈一輪,找到最小的數的位置 和 最左邊的數交換位置 然後從第二個開始.和第二個交換位置,迴圈最後變得有序 coding utf 8 defselect sort list for i in range l...

python演算法 排序(一)

氣泡排序 基本思想 兩兩相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄為止 要點 1.兩兩注意是相鄰的兩個元素的意思 2.如果有n個元素需要比較n 1次,每一輪減少1次比較 3.既然叫氣泡排序,那就是從下往上兩兩比較,所以看上去就跟泡泡往上冒一樣。def bubblesort numlist ...