雞尾酒排序優化版

2021-10-10 18:11:38 字數 638 閱讀 5654

大部分元素有序時

氣泡排序一樣,還可以繼續優化,用識別符號標識出無序區與有序區界限位置,用乙個變數記錄最後乙個變換的位置,有序區內的元素不再參與比較

public void sort() ;

int lastrightexchangeindex=0;

int lastleftexchangeindex=0;

int rightunsortborder = array.length-1;

int leftunsortborder = 0;

for(int i =0; i< array.length/2;i++)

}rightunsortborder = lastrightexchangeindex;

if(issorted)

//從右到左的迴圈

issorted=true;

for(int j = array.length-i-1;j>leftunsortborder;j--)

}leftunsortborder = lastleftexchangeindex;

if(issorted)

}system.out.println(arrays.tostring(array));

}

雞尾酒排序

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

雞尾酒排序

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

雞尾酒排序

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