java 雞尾酒排序
阿新 • • 發佈:2018-12-21
java常用的排序演算法,雞尾酒排序就像鐘擺一樣,第一輪從左往右,第二輪從右往左,第三輪從左往右。。。。直到元素沒有位置交換的時候,說明已經有序,停止交換。是冒泡演算法的升級版
package shujujiegou; import java.util.Arrays; /** * 雞尾酒排序就像鐘擺一樣,第一輪從左往右第二輪從右往左,第三輪從左往右。。。。 * 直到元素沒有位置的交換證明已經有序,排序結束 * @author TomCat * */ public class CockTailSort { public static void sort(int[] array) { int temp=0; for(int i=0;i<array.length/2;i++) { boolean isSorted=true; //有序標記,每一輪的出事為true //奇數輪,從左往右比較 for(int j=i;j<array.length-i-1;j++) { if(array[j]>array[j+1]) { temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; isSorted=false;//有元素的交換,所以不是有序的,標記置為false } } if(isSorted) { break; } //開始偶數論的比較 isSorted=true; for(int j=array.length-i-1;j>i;j--) { if(array[j]<array[j-1]) { temp=array[j]; array[j]=array[j-1]; array[j-1]=temp; isSorted=false;//有元素的交換,所以不是有序的,標記置為false } } if(isSorted) { break; } } } public static void main(String[] args) { int[] array=new int[] {1,4,3,2,5,6,3,5,9}; sort(array); System.out.println(Arrays.toString(array)); } }