1D1A 氣泡排序(3)

2021-08-15 02:39:54 字數 838 閱讀 1655

《演算法導論》中的習題中,講到了氣泡排序:是一種流行但是低效的排序方式,他的作用是反覆交換相鄰的未按次序排列的元素。

偽**(python):

def

bubblesort

(lists):

length = len(lists)

for i in range(length-1):

for j in range(length-1-i):

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

lists[j],lists[j+1] = lists[j+1],lists[j]

c++:

void bubblesort(vector

&a)

}}

def

shellsort

(list):

n = len(list)

gap = n // 2

while gap > 0:

for i in range(gap,n):

j = i - gap

while j >= 0

and list[j] > list[j+gap]:

list[j],list[j+gap] = list[j+gap],list[j]

j -= gap

gap = gap // 2

return list

c++:

void shellsort(vector

&a)

}gap /= 2;

}

1 氣泡排序

氣泡排序 這裡採用公升序排序 是不斷比較臨近的兩個元素大小,若出現兩個元素為降序的 l i l i 1 則交換兩者的值。把最最小值冒泡至前面 根據判斷條件不同而不同 迴圈結束後,則是排序好的序列。我寫的程式是 每次都用前面的元素和後面的元素比較,若出現降序則交換。所以冒泡方式是,小的往前面移動。例如...

1 氣泡排序

基本思想 氣泡排序,類似於水中冒泡,較大的數沉下去,較小的數慢慢冒起來,假設從小到大,即為較大的數慢慢往後排,較小的數慢慢往前排。直觀表達,每一趟遍歷,將乙個最大的數移到序列末尾。1.比較相鄰的元素,如果前乙個比後乙個大,交換之。2.第一趟排序第1個和第2個一對,比較與交換,隨後第2個和第3個一對比...

1 氣泡排序

1 氣泡排序 氣泡排序是排序演算法中較為簡單的一種,英文稱為bubble sort。它遍歷所有的資料,每次對相鄰元素進行兩兩比較,如果順序和預先規定的順序不一致,則進行位置交換 這樣一次遍歷會將最大或最小的資料上浮到頂端,之後再重複同樣的操作,直到所有的資料有序。2 演算法步驟 比較相鄰的元素。如果...