博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第1章 游戏之乐——一摞烙饼的排序
阅读量:6503 次
发布时间:2019-06-24

本文共 1676 字,大约阅读时间需要 5 分钟。

一摞烙饼的排序

  问题:写出一个程序,对于n块大小不一的烙饼,输出最优化的翻饼过程?要保证烙饼按照大小次序摆好——小的在上面,大的在下面。

分析与解法:

用java实现的代码如下:

package chapter1youxizhilePrefixSorting;import java.util.Scanner;/** * 一摞烙饼的 * @author DELL * */public class PrefixSorting {    private int[] m_CakeArray;  //烙饼信息数组    private int m_nCakeCnt;  //烙饼个数    private int m_nMaxSwap;  //最多交换次数,根据推断,最多为(m_nCakeCnt-1)*2;    private int[] m_SwapArray;  //交换结果数组    private int[] m_ReverseCakeArray;    //当前翻转烙饼信息数组    private int[] m_ReverseCakeArraySwap;  //当前翻转烙饼交换结果数组    private int m_nSearch;    //当前搜索次数信息        public PrefixSorting(int[] pCakeArray, int nCakeCnt){        m_nCakeCnt = 0;        m_nMaxSwap = 0;        Run(pCakeArray, nCakeCnt);    }        /**     * 计算烙饼翻转信息     * @param pCakeArray  存储烙饼索引数组     * @param nCakeCnt      烙饼个数     */    public void Run(int[] pCakeArray, int nCakeCnt){        Init(pCakeArray, nCakeCnt);        m_nSearch = 0;        Search(0);    }        //输出烙饼具体翻转次数    public void Output(){        System.out.print("交换结果数组为:");        for(int i=0;i
m_nMaxSwap) return; //如果已经排好序,即翻转完成,输出结果 if(IsSorted(m_ReverseCakeArray, m_nCakeCnt)){ if(step
pCakeArray[i]){ return false; } } return true; } /** * 翻转烙饼信息 * @param nBegin 开始位置 * @param nEnd 结束位置 */ private void Revert(int nBegin, int nEnd){ if(nBegin>=nEnd){ System.out.println("参数信息有误!开始位置不能大于等于结束位置!"); } int i,j,t; //翻转烙饼信息 for(i=nBegin,j=nEnd; i

程序运行结果如下:

请输入烙饼从上到下的半径,以逗号分隔:3,2,1,6,5,4,9,8,7,0交换结果数组为:4 8 6 8 4 9 |Search Times| : 148015Total Swap times = 6

 

转载地址:http://pdmyo.baihongyu.com/

你可能感兴趣的文章
Maven学习总结(6)——Maven与Eclipse整合
查看>>
HTML5:理解head
查看>>
oracle
查看>>
java SpringUtil获取bean
查看>>
Centos6.4最小化安装系统初始化脚本
查看>>
PaaS变厚了
查看>>
赛门铁克开启“容灾即服务”时代
查看>>
复杂度归纳--小结
查看>>
PHP学习笔记 第八讲 Mysql.简介和创建新的数据库
查看>>
【git】git入门之把自己的项目上传到github
查看>>
js获取鼠标位置
查看>>
2016.8.11 DataTable合并及排除重复方法
查看>>
php 魔术方法 说明
查看>>
Mysql
查看>>
POJ-1860-Currency Exchange
查看>>
跨越企业的“中等收入陷阱”
查看>>
Android 开发者必知的开发资源
查看>>
软件工程技术基础-(软件复用技术)
查看>>
给django视图类添加装饰器
查看>>
简述 clearfix 的原理
查看>>