文档章节

单循环比赛的固定轮转编排法与"贝格尔"编排法

Gtwo
 Gtwo
发布于 2015/11/03 17:44
字数 481
阅读 78
收藏 0

原文:http://www.java3z.com/cwbwebhome/article/article1/199.html

package com.test;

import java.util.Scanner;
import org.junit.Test;

public class RandomList {
    
    // 固定轮转编排法
    @Test
    public void fixedRotates(){
        String [] team = {"A","B","C","D","E","F","G","H","I","J","K","L","M","X"};//参赛的各队
        int len = team.length; 
        for(int i=1;i< len;i++) { 
            System.out.println(); 
            System.out.println("第"+i+" 轮");
            for(int j=0;j< len/2;j++){ 
                System.out.println(team[j]+" ----- "+ team[len-1-j]); 
            } 
             String temp=team[len-1]; //将最后一队的值赋给临时变量temp 
            for(int k=len-1;k>0;k--){ 
                team[k]=team[k-1];
            } 
              team[1]=temp; //将临时变量temp赋给数组的第二值
        } 
    }
    
    // “贝格尔”编排法
    @Test
    public void beger(){
        int team_Num;//队伍的数量
        int team_Arr[];//队伍数组
        int team_temp[];
        boolean empty=false;//是否有轮空
        int jump;//调动幅度
        int round;//比赛轮数
        int flag;//标志,队伍的最大的,或者0,其他队伍在移动的时候,如果碰到他,将跳过
        int tempNum,tempNum1;//队伍在迭代时候保存临时变量的东西
        //--------------------初始化一些数据
        Scanner cin = new Scanner(System.in);
        System.out.print("输入队伍的数量: ");
                    
        team_Num = cin.nextInt();
        if(team_Num%2 != 0){//队伍个数为奇数时
            empty = true;
            team_Num++;
        }
        round = team_Num-1;
        jump = ((team_Num+1)/2)-1;
        team_Arr = new int[team_Num];
        team_temp = new int[team_Num];
        for(int i = 0;i< team_Num;i++){
          team_Arr[i] = i+1;
        }
        if(empty){
          team_Arr[team_Num-1]=0;
        }
         flag = team_Num-1;
        //---------------------开始计算了--------------
        for(int j = 0;j< round;j++){
            System.out.println("第"+(j+1)+"轮:");
            for(int m = 0;m< team_Num/2;m++){
                System.out.println(team_Arr[m]+"----"+team_Arr[team_Num-m-1]);
            }
            for(int g = 0;g< team_Num;g++){
                team_temp[g] = team_Arr[g];
            }
            if(flag != 0 ){
                tempNum = team_Arr[flag];//temp 一开始总是记录0队或者最大队伍
                flag = 0;//flag 跳动
                tempNum1 = team_Arr[flag];
                team_Arr[flag] = tempNum;
                
            }else{
                tempNum =team_Arr[flag];//temp 一开始总是记录0队或者最大队伍
                tempNum1 = team_Arr[team_Num-1];
                flag = team_Num-1;//flag 跳动
                team_Arr[flag]=    team_temp[flag] = tempNum;
                team_Arr[0]=team_temp[0] = tempNum1;
            
            }
            for(int k = 0;k< team_Num-1;k++){//走动
                int t = k;
                if(t >= team_Num)
                    t = t - team_Num;
                int z = t;
                for(int u = 0;u< jump;u++){
                    t++;
                    if(t == team_Num)
                        t = t - team_Num;
                    if(t == flag)
                        t++;
                    if(t == team_Num)
                        t = t-team_Num;
                }
                team_Arr[t] = team_temp[z];//
            }
        }
    }
}


本文转载自:

共有 人打赏支持
Gtwo
粉丝 1
博文 42
码字总数 35045
作品 0
中山
程序员
私信 提问
PgSQL · 应用案例 · HDB for PG特性(数据排盘与任意列高效率过滤)

背景 数据也有生辰八字,你信吗?列与列之间,行与行之间,元素与元素之间如何相生相克?查询慢?不要信什么这都是上天注定的,如何给数据改运?看完本文,你也可以做到。 一份天赋,九份努力...

阿里云RDS-数据库内核组
2017/08/09
0
0
活字格 - 图片轮转插件

CarouselCellType 功能:图片轮转播放,支持非绑定和绑定两种模式。 打包下载 活字格图片轮转类型插件下载:https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=48667 活字格官网:...

葡萄城技术团队
2018/08/09
0
0
欧洲足球,5大联赛!Python爬虫数据可视化带你解析经典赛事

     前言:   R爬虫&可视化系列文章,我们来聊聊欧洲足球五大联赛。本人作为一个不会踢球的资深球迷,俗称“懂球帝”,今天就与大家用数据分析一下2017-2018赛季欧洲五大联赛的各项指...

菜鸟学Python
2018/08/13
0
0
Java之优先级队列PriorityQueue和比较器Comparator

模拟进程调度时的优先数法和简单时间片轮转法,前者可以为进程设定以优先数PRIORITY为优先级,为了更好地并发,每次获得处理机后优先数减少3而重新选取。 在简单轮转法中则仅仅是一个普通队列...

刘知昊的笔记
2017/12/14
0
0
面试算法:线性表

链表 队列 堆栈 实践应用 难题首选[动归],受阻[贪心][暴力];考虑[分治]思想,配合[排序][哈希]; 动态规划:动态数组降低空间复杂度 贪心法:Dijkstra最短路径、最小生成树Prim、Kruskal算...

datacube
2016/07/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

rabbitmq安装教程

RabbitMQ有Windows与Linux版本的,这里先写Windows版本的安装。 以前安装软件总是在百度上找某某安装教程,结果能按照教程安装好的软件真的不多。想起先前以为大牛说的一句话,去官网按照官网...

em_aaron
9分钟前
1
0
Android 贝塞尔曲线实践——波浪式运动

一、波浪效果如下 贝塞尔曲线自定义波浪效果的案例很多,同样方法也很简单,大多数和本案例一样使用二次贝塞尔曲线实现,同样还有一种是PathMeasure的方式,这里我们后续补充,先来看贝塞尔曲...

IamOkay
13分钟前
0
0
Nmap之防火墙/IDS逃逸

选项 解释 -f 报文分段 --mtu 指定偏移大小 -D IP欺骗 -sI 原地址欺骗 --source-port 源端口欺骗 --data-length 指定发包长度 --randomize-hosts 目标主机随机排序 --spoof-mac Mac地址欺骗 ...

Frost729
21分钟前
0
0
带你搭一个SpringBoot+SpringData JPA的环境

不知道大家对SpringBoot和Spring Data JPA了解多少,如果你已经学过Spring和Hibernate的话,那么SpringBoot和SpringData JPA可以分分钟上手的。 其实我在学完SpringBoot和SpringData JPA了之...

java菜分享
26分钟前
2
0
Chocolatey 在Window搭建一个开发环境

在看了(利用 Chocolatey 快速在 Windows 下搭建一个开发环境)后,准备从零开始 一、准备工作 1、用管理员权限启动:powershell,执行错误请参考(PowerShell因为在此系统中禁止执行脚本的解...

近在咫尺远在天涯
39分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部