雞尾酒排序是一種在氣泡排序的基礎上進行改進的演算法。
和氣泡排序的從陣列的一端乙個個排序到另一端的單方向的順序不同,雞尾酒排序的元素比較和交換的雙向的。
雙向是什麼意思呢?
就是說,對於雞尾酒排序,第一輪從左到右進行排序,這裡和氣泡排序一模一樣,但是第二輪就不一樣了,此時需要的是從右到左,換個方向進行排序,第三輪又變成從左到右進行排序…
通俗點來說就是:雞尾酒排序的過程就像是遊樂場裡面的海盜船,先從左到右,然後從右到左。
其次有個點,就是這個實現的方式就會略顯複雜,因為需要控制兩個方向,但是對於效率來說有了一定的提高,而且雞尾酒排序中也會引入標記,用於跳出外層迴圈。
**的實現方式:
public
static
void
sort
(int
array)
}//這裡需要注意,在開始之前必須把標記置為true之後才開始,也是一種初始化操作
flag =
true
;//偶數輪,從右向左比較和交換
for(
int j = array.length -
1- i; j > i ; j--)}
//如果經過了乙個來回還是true,證明從左到右和從右到左都沒有資料進行移動了,陣列也是有序的了
if(flag)
}}
雞尾酒演算法排序
一 什麼時雞尾酒排序?雞尾酒排序又稱為快樂小時排序,它基於氣泡排序進行的優化方案。二 雞尾酒演算法思想 氣泡排序是元素單向比較,而雞尾酒排序卻是雙向。列舉乙個最簡單的栗子array 2,3,4,5,6,7,8,9,1 如果按照傳統的氣泡排序進行操作,第一輪結果 2,3,4,5,6,7,8,1,9 只...
雞尾酒排序
氣泡排序是從陣列的一側到另一側為一輪,根據條件兩兩交換,例如關於氣泡排序中的一組資料3 2 5 4 6 1 8 9 7,優化的氣泡排序在經過六輪之後得到排好的陣列,而雞尾酒排序是一輪次比較兩回 先從左到右比較,如果左邊比右面大,交換位置 然後從右到左比較,左邊比右邊大,交換位置。就用冒泡中的那組數從...
雞尾酒排序
雞尾酒排序是一種定向的氣泡排序,也可以稱為攪拌排序 漣漪排序。是氣泡排序的一種變形。和氣泡排序的區別在於,雞尾酒排序採用了雙向比較並替換的原理。基本原理 第一步 宣告兩個臨時指標left和right,分別指向第乙個元素和最後乙個元素。第二步 每一輪比較時,從right往left方向查詢最大數,放到r...