/**
* @Author JH
* @CreateDate 18-6-12
* @Description 翻薄餅 有n張大小各不相同的薄餅,一張疊在另一張上面 將大的放在下邊,
* 先查找最大的數,如果這個數在最後,不用進行操作,如果這個數在第一位,只需要翻一次,即數組整體換位,
* 否則要進行兩次交換,第一次將這個數換到第一位,然後再轉至數組,使得這個數變爲最後一個
*/
public class Pancake {
public void fun_1(int [] array){
int j=array.length;
while (j>0){
int i=j-1 ,max=array[i],index=i;
for (;i>=0;i--){
if (max<array[i]){
max=array[i];
index=i;
}
}
if(index!=j-1) {
swap(array, index);
swap(array, j - 1);
}
j--;
}
}
private void swap(int[] array, int i1) {
int temp;
for (int m=0;m<(i1+1)/2;m++){
temp=array[m];
array[m]=array[i1-m];
array[i1-m]=temp;
}
}
public static void main(String[] args) {
int a[]={2,4,7,4,6,1,9};
Pancake p=new Pancake();
p.fun_1(a);
for (int i:a){
System.out.println(i);
}
}
}
翻薄餅
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.