package test; public class 鸡尾酒排序 { //如果左边大于右边则交换 void Swap(int a[],int i,int j) { int temp=a[i]; a[i]=a[j]; a[j]=temp; } void CocktailSort(int a[],int n) { // 数组a和数组的长度 //左右为比较范围 int left=0; // 初始化数组a的最左边索引 int right=n-1;// 初始化数组a的最右边索引 while(left<right) { //左右索引比较 for(int i=left;i<right;i++) { //前半轮,将最大的移到最右边 if(a[i]>a[i+1]) { Swap(a,i,i+1); } } right--; // 比较范围左移一位 for(int i=right;i>left;i--) { ////后半轮,将最小的移到最左边 if(a[i-1]>a[i]) { Swap(a,i-1,i); } } left++;// 比较范围右移一位 } } public static void main(String[] args) { int a[]= {6,84,8,5,7,9,7,66,845,4,963,7415,4155,1,96,2}; 鸡尾酒排序 h=new 鸡尾酒排序(); h.CocktailSort(a, a.length); for(int i:a) { System.out.println(i); } } }
十大经典排序算法之鸡尾酒排序
猜你喜欢
转载自blog.csdn.net/momo_f/article/details/80258085
今日推荐
周排行