'''
氣泡排序的每一輪是從左到右來比較元素,進行單向的位置交換
雞尾酒排序的元素比較和交換過程是雙向的:第一輪是從左向右,第二輪是從右向左,以此類推
'''a=[2
,3,4
,5,6
,7,8
,1]index=
0#外環控制回合
for i in
range
(int
(len
(a)/2)
):if(
(i+1)%
2!=0)
: issorted =
true
#內環實現冒泡處理:每一輪會把最大值冒泡至最後
for j in
range
(len
(a)-
1-i):if
(a[j]
>a[j+1]
):n=a[j]
a[j]
=a[j+1]
a[j+1]
=n issorted=
false
index+=1if
(issorted)
:break
else
: issorted =
true
# 內環實現冒泡處理:每一輪會把最大值冒泡至最後
for j in
range
(len
(a)-
1- i,0,
-1):
if(a[j]
< a[j -1]
):n = a[j]
a[j]
= a[j +1]
a[j +1]
= n issorted =
false
index+=1if
(issorted)
:break
print
(a)print
(index)
資料結構 雞尾酒排序
雞尾酒排序,名字很好聽.不過,這只是乙個對氣泡排序的乙個改進的演算法而已.這個演算法與氣泡排序不同的一點在於,他在氣泡排序從低到高進行一波排序之後,又從高到低進行一波排序,以此類推,因此,這個演算法也叫做定向氣泡排序 這個演算法與氣泡排序一樣,在面對亂序程度較高的資料的時候有著比較差的效能 loop...
資料結構 排序 雞尾酒排序演算法
雞尾酒排序,也就是定向氣泡排序,雞尾酒攪拌排序,是氣泡排序的一種變形。此演算法與氣泡排序的不同處在於排序時是以雙向在序列中進行排序。使用雞尾酒排序為一列數字進行排序的過程 雞尾酒演算法原理 i.先對陣列從左到右進行公升序的氣泡排序 ii.再對陣列進行從右到左的降序的氣泡排序 iii.以此類推,持續的...
雞尾酒排序
氣泡排序是從陣列的一側到另一側為一輪,根據條件兩兩交換,例如關於氣泡排序中的一組資料3 2 5 4 6 1 8 9 7,優化的氣泡排序在經過六輪之後得到排好的陣列,而雞尾酒排序是一輪次比較兩回 先從左到右比較,如果左邊比右面大,交換位置 然後從右到左比較,左邊比右邊大,交換位置。就用冒泡中的那組數從...