# 簡單選擇排序
# 每一趟從待排序的資料元素中選出最小(最大)的元素
# 順序放到數列最前,直到全部待排序的資料元素全部遍歷完
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 ...