翻薄饼


/**
 * @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);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值