贝格尔编排法代码
来源:互联网 发布:你好旧时光 知乎 编辑:程序博客网 时间:2024/04/29 13:02
自己编写的适用于单循环比赛的贝格尔编排法代码,若有可改进之处,望高手指正import java.util.Scanner;public class BergerTest {public static void main(String[] args) {// TODO Auto-generated method stubBergerTest ber = new BergerTest();System.out.println("输入队伍数量:");Scanner cin = new Scanner(System.in);int team_Num = cin.nextInt();if((team_Num&0x1)!=0){team_Num++;}int[] team_arr = new int[team_Num];ber.init(team_arr, team_Num);int flag = team_Num-1;//最后一直队伍或者空白队伍的标志int walk = team_Num/2 -1;//移动步长for(int i= 0; i< team_Num-1; i++){System.out.println("第"+(i+1)+"轮:");if(i>0){flag = ber.exchangFlag(team_arr, team_Num, flag);ber.move(team_arr, team_Num, flag, walk);}ber.display(team_arr, team_Num);}}public void display(int[] arr,int len){for(int i = 0; i < len/2; i++){System.out.println(arr[i]+"...."+arr[len-1-i]);}}//初始化队伍数组public void init(int[] arr,int len){for(int i = 0;i < len ; i++){arr[i] = i+1;}} //return the pos of flag after swappublic int exchangFlag(int[] arr,int len, int flag){int lastflag = flag;if(flag != 0){flag = 0;}else{flag = len -1;}swap(arr,flag,lastflag);return flag;}public void move(int[] arr,int len, int flag,int walk){int begin= 1;int nextPos,beginPosValue;intnextPosValue = arr[begin];for(int j = 0; j<len-1;j++){beginPosValue = nextPosValue;nextPos = getNextPos(begin, walk, flag,len);nextPosValue = arr[nextPos];arr[nextPos] = beginPosValue;begin = nextPos;}}public void swap(int[] arr, int flag, int lastflag) {int temp = arr[flag];arr[flag] = arr[lastflag];arr[lastflag] = temp;}public int getNextPos(int begin,int walk,int flag,int len){for(int i = 0 ;i < walk; i++){begin++;if((begin%len)== flag)begin++;}return begin%len;}}
0 0
- 贝格尔编排法代码
- 贝格尔编排法
- 单循环赛贝格尔编排法实现
- 代码规范 : 格式编排
- 单循环比赛的"贝格尔"编排法
- 单循环比赛的"贝格尔"编排法
- 贝格尔编排法之C++版
- 贝格尔编排法的PHP实现
- 循环赛日程编排c代码
- 通讯录编排
- 资源编排
- 推荐 C++的代码缩进编排更好的工具 -- Artistic Style(Astyle)
- 页面路径的编排
- 学报编排规范
- 巧用”WORD2000“编排试卷
- word中的页码编排
- 内核源码编排
- jboss ESB 服务编排
- spring作用域
- 黑马程序员------TreeSet集合框架存储自定义元素之排序Comparable与Comparator
- JNI和NDK
- Postgresql: UUID的使用
- hdu-2147kiki's game-博弈
- 贝格尔编排法代码
- 【网页访问单向、双向验证均可以】https原理及tomcat配置https方法[生成CA根证书配置tomcat后,若要成功访问axis中的webservice,需要配置它对应的axis2.xml文件]
- 对于零宽度断言的理解
- Java基础知识(下)
- 加载shp mxd时出现的问题
- 浅谈UML中类之间的五种关系及其在代码中的表现形式
- Unique Binary Search Tree II
- hdoj 1276 士兵队列训练问题 【模拟】
- 机试算法讲解: 第35题 欧拉回路之一笔画