選擇排序和插入排序

2022-05-01 16:00:11 字數 812 閱讀 7914

# 選擇排序就是找到後面最小值的索引,和第乙個值對比

def select_sort(li):

for i in range(len(li)-1): # n或者n-1趟

# 第i趟無序區範圍 i~最後

min_pos = i # min_pos更新為無序區最小值位置

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

if li[j] < li[min_pos]:

min_pos = j

li[i], li[min_pos] = li[min_pos], li[i]

li = list(range(0,100))

random.shuffle(li)

select_sort(li)

print(li)

def insert_sort(li):

for i in range(1, len(li)): # i表示摸到的牌的下標

tmp = li[i] # 摸到的牌

j = i - 1

while j >= 0 and li[j] > tmp: # 只要往後挪就迴圈 2個條件都得滿足

# 如果 j=-1 停止挪 如果li[j]小了 停止挪

li[j+1] = li[j]

j -= 1

# j位置在迴圈結束的時候要麼是-1要麼是乙個比tmp小的值

li[j+1] = tmp

li = list(range(10000))

random.shuffle(li)

insert_sort(li)

選擇排序和插入排序

選擇排序 時間複雜度 o n 2 額外空間複雜度o 1 選擇排序是從陣列的第乙個值即arr 0 開始,先假定當前值為最小值,記下index值,向後遍歷陣列,當 arr i 小於arr index 時,令index i 一直到arr length 1 獲得最小值的index然後與arr 0 交換,此時...

插入排序和選擇排序

排序 將一組雜亂無章的資料按照一定的規則有組織地排列起來。排序的穩定性 如果在排序中,存在前後相同的兩個元素的話,排序前和排序後他們的相對位置不發生變化。今天,先來學習插入排序和選擇排序 插入排序 直接插入排序 1 思想 每一步將乙個待排序的元其排序碼的大小,插入到前面已將排好序的一組元素的合適位置...

插入排序和選擇排序

插入排序 插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的 個數加一的有序資料。從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素 已排序 大於新元素,將該元素移到下一位置 重複步驟3,直到找到已排序的元素小於或者...