幾種排序的演算法

2022-05-14 08:58:28 字數 1313 閱讀 9770

#插入排序(將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的、個數加一的有序資料)

# def insert_sort(list):

# count = len(list) #算出列表長度用於控制迴圈次數

# for i in range(1,count):

# key = list[i] #列表中每個值

# j = i -1 #j 比 i 值小1 i和j都是列表下標值,用來對列表前後兩個值做比較

# while j >=0:

# if list[j] > key: #key是list[i] 即list[j+1] 即是後面乙個值。 如果前面的值比後面的值大,兩個值就交換位置

# list[j+1]= list[j] #將list[j]的值賦給list[j+1]

# list[j] = key #將list[i]的值賦給list[j]

# j -=1 #為了跳出while迴圈

# print(list)

# return list

# print(insert_sort([1,6,2,5,11,111,22,22,22,31,1,2,3,8]))

# 氣泡排序

def insert_sort(list):

count = len(list)

for i in range(0,count):

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

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

print(list)

return list

# insert_sort([5,4,2,3,1])

def insert_sort(list):

count = len(list)

for i in range(0,count):

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

if list[i] < list[j]:

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

print(list)

res = list[::-1]

return res

print(insert_sort([5,4,2,7]))

幾種排序演算法

幾種比較常見的排序演算法 第一種 函式功能 雙向氣泡排序 2013.7.8 時間複雜度o n 2 include void mp int array,int n if mmax 0 沒有記錄交換,掃瞄結束 break bmax mmax for i bmax 1 i bmin i 此次掃瞄使輕氣泡上...

幾種排序演算法

本帖依據學習進度持續更新 資料結構與演算法分析 c語言描述 學到第七章,是時候該系統的學習一下排序演算法了。首先學到的是插入排序,演算法就不贅述了,書上部落格上到處都有。書上的兩個定理還不太明白 插入排序 定理7.1 n個互異數的陣列的平均逆序數是n n 1 4。定理7.2 通過交換相鄰元素進行排序...

幾種排序演算法

最近一直在複習演算法,在經歷了四次面試之後,還沒有找到適合自己的工作 暫時歇一歇,準備冬天去北京創業一條街吹泡泡去。在面試過程中主要提及的就是對於排序演算法的疑問 主要針對以下幾種排序演算法 1,氣泡排序 2,插入排序 3,選擇排序 4,希爾排序 5,歸併排序 6,快速排序 7,堆排序 對於基數排序...