雞尾酒排序

2021-08-22 02:16:21 字數 1066 閱讀 7934

氣泡排序是從陣列的一側到另一側為一輪,根據條件兩兩交換,例如關於氣泡排序中的一組資料3 2 5 4 6 1 8 9 7,優化的氣泡排序在經過六輪之後得到排好的陣列,而雞尾酒排序是一輪次比較兩回:先從左到右比較,如果左邊比右面大,交換位置;然後從右到左比較,左邊比右邊大,交換位置。

就用冒泡中的那組數從小到大排序:                                        3 2 5 4 6 1 8 9 7

第一輪1)從左到右排序         2 3 4 5 1 6 8 7 9 

2)從右到左排序         1 2 3 4 5 6 7 8 9 9(已經排好序)

第二輪1)從左到右排序         1 2 3 4 5 6 7 8 9(跳出迴圈)

public class testjiwei ;

jiwei(arr);

for (int i = 0; i < arr.length; i++)

}public static void jiwei(int arr)

}if (flag)

//第二輪,從右到左排序

for (int j = arr.length - i - 1; j >0; j--)

}if (flag)}}

}

public class testjiwei ;

jiwei(arr);

for (int i = 0; i < arr.length; i++)

}public static void jiwei(int arr)

}//賦值邊界值

leftend = lastleftexchangeindex;

if (flag)

//第二輪,從右到左排序

for (int j = arr.length - i - 1; j > rightend; j--)

}//賦值邊界值

rightend = lastrightexchangeindex;

if (flag) }}

}

又學會一種排序,好開心~~

雞尾酒排序

雞尾酒排序是一種定向的氣泡排序,也可以稱為攪拌排序 漣漪排序。是氣泡排序的一種變形。和氣泡排序的區別在於,雞尾酒排序採用了雙向比較並替換的原理。基本原理 第一步 宣告兩個臨時指標left和right,分別指向第乙個元素和最後乙個元素。第二步 每一輪比較時,從right往left方向查詢最大數,放到r...

雞尾酒排序

1.什麼是雞尾酒排序 雞尾酒排序,也稱定向氣泡排序 雙氣泡排序 攪拌排序 漣漪排序 來回排序 快樂小時排序,是氣泡排序的一種變形。2.與氣泡排序的區別 雞尾酒是雙向排序,可以得到較好的排序效能 3.排序過程 舉例 int arr new 第一趟排序 從左到右找到最大值放在最右端 第一次排序 2和4比...

雞尾酒排序

所謂雞尾酒的排序就是元素比較和交換過程是雙向的,而氣泡排序是單項的,下面先舉個例子來一步一步介紹其排序思想。例如給定陣列元素為2,3,4,5,6,7,8,1 我們按照氣泡排序的思想,排序過程如下 從上面的過程我們可以看出,2 8已經有序,只有1無序,而我們卻要比較七次,才能排序成功。這樣,我們就可以...