分治算法实例:赛程安排(VB.net代码)
Public Class Form1Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.LoadlblTell.Text = "输入比赛人数(双数,大于8时必须是16、32或64),进行单循环赛程安排"lblNum.Text = "比赛人数"End SubPrivate Sub btnCal_Click(sender As Object, e As EventArgs) Handles btnCal.ClickDim intNum, intI, intJ, intCal(,) As IntegerIf IsNumeric(txtNum.Text) ThenTryintNum = CInt(txtNum.Text)If intNum > 0 AndAlso intNum < 65 AndAlso (intNum <= 8 AndAlso intNum Mod 2 = 0) OrElse intNum = 16 OrElse intNum = 32 OrElse intNum = 64 ThenReDim intCal(intNum, intNum)'赛程安排计算gameCal(1, intNum, intCal)'显示计算结果'清除原数据dgvCal.Columns.Clear()dgvCal.Rows.Clear()'添加各列,并加表头dgvCal.Columns.Add(0, "")For intI = 1 To intNum - 1dgvCal.Columns.Add(intI, "第" & intI & "场")Next'输出各行数据'显示多了一行空行,不如原因For intI = 1 To intNumdgvCal.Rows.Add()For intJ = 1 To intNumdgvCal.Rows(intI - 1).Cells(intJ - 1).Value = intCal(intI, intJ)NextNextElseMsgBox("错误,数字不是正整数,双数,大于8时必须是16、32或64")End IfCatch ex As ExceptionMsgBox("错误,数字超过正常范围")End TryElseMsgBox("错误,输入的不是数字")End IfEnd SubPrivate Sub gameCal(ByVal intK As Integer, ByVal intN As Integer, ByRef intCal(,) As Integer)'处理编号intK开始的intN个选手的赛程'分治算法,有一定的局限,重点在于算法的思路'算法的思路是化整为零,先找出小块的规律,再看整块与小块规律分布Dim intI, intJ As IntegerIf intN = 2 Then '小块的规律intCal(intK, 1) = intK '参赛选手编号intCal(intK, 2) = intK + 1 '对阵选手编号intCal(intK + 1, 1) = intK + 1 '参赛选手编号intCal(intK + 1, 2) = intK '对阵选手编号ElsegameCal(intK, intN / 2, intCal) '化成小块,左上角,1/4块gameCal(intK + intN / 2, intN / 2, intCal) '化成小块,右正解,1/4块For intI = intK To intK + intN / 2 - 1 '填充右上角For intJ = intN / 2 + 1 To intNintCal(intI, intJ) = intCal(intI + intN / 2, intJ - intN / 2)NextNextFor intI = intK + intN / 2 To intK + intN - 1 '填充左下角For intJ = intN / 2 + 1 To intNintCal(intI, intJ) = intCal(intI - intN / 2, intJ - intN / 2)NextNextEnd IfEnd SubPrivate Sub 作品集ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 作品集ToolStripMenuItem.ClickProcess.Start("https://pan.baidu.com/s/1jr_3Yt5l1i6jNNbMy4R61A")My.Computer.Clipboard.Clear()My.Computer.Clipboard.SetText("5ycz")MsgBox("提取码5ycz已复制,直接到网页粘贴即可")End SubPrivate Sub 更新下载ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 更新下载ToolStripMenuItem.ClickProcess.Start("https://pan.baidu.com/s/1A1GKYW3RHxGMghScxK4Nsw")My.Computer.Clipboard.Clear()My.Computer.Clipboard.SetText("zxei")MsgBox("提取码zxei已复制,直接到网页粘贴即可")End SubPrivate Sub 代码浏览ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 代码浏览ToolStripMenuItem.ClickProcess.Start("https://blog.csdn.net/kguncn/article/details/109262504")End Sub
End Class
分治算法实例:赛程安排(VB.net代码)相关推荐
- 快速排序 c++_算法浅谈——分治算法与归并、快速排序(附代码和动图演示)
本文始发于个人公众号:TechFlow 在之前的文章当中,我们通过海盗分金币问题详细讲解了递归方法. 我们可以认为在递归的过程当中,我们通过函数自己调用自己,将大问题转化成了小问题,因此简化了编码以及 ...
- 排序中减治法算法伪代码_算法浅谈——分治算法与归并、快速排序(附代码和动图演示)...
在之前的文章当中,我们通过海盗分金币问题详细讲解了递归方法. 我们可以认为在递归的过程当中,我们通过函数自己调用自己,将大问题转化成了小问题,因此简化了编码以及建模.今天这篇文章呢,就正式和大家聊一聊 ...
- 贪心算法之 活动安排(Java代码实现)
活动安排问题 – 资源争夺 问题描述 设有 n 个活动的集合 A = {1, 2, - , n}, 其中每个活动都要求使用同一资源,而在同一时间段内只有一个活动能使用资源 要求高效安排一系列争用公共资 ...
- 五大算法思想(一)分治算法及常见例子
文章目录 一.理论基础 1.1 适用场景 1.2 使用步骤 1.3 经典例子 二.常见例子 2.1 二分搜索 2.2 大整数乘法 2.3 Strassen矩阵乘法 2.4 棋盘覆盖 2.5 合并排序 ...
- 比赛赛程安排算法--分治算法
问题在注释中已说明,直接贴代码! /** bisaisaicheng.c** Created on: Nov 30, 2013* Author: bing** 每个选手必须与其他所有选手进行一次比赛, ...
- 计算1至1000间的合数c语言,输出1000以内的素数的算法(实例代码)
输出1000以内的素数的算法(实例代码) 代码如下所示: 复制代码 代码如下: #include "stdafx.h" #include #include bool IsSushu ...
- 聚类算法-最大最小距离算法(实例+代码)
聚类算法-最大最小距离算法(实例+代码) [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/53708042 目录 聚类算法- ...
- 异或加密的java算法_Java使用异或运算实现简单的加密解密算法实例代码
Java简单的加密解密算法,使用异或运算 实例1: package cn.std.util; import java.nio.charset.Charset; public class DeEnCod ...
- 分治算法之循环赛程日志表
什么是分治算法? 就是当求解的数据过多,计算的过程过于复杂的情况即可使用分治算法 分治算法的一般步骤: 1.分解:将复杂问题划分为若干同类小问题 2.求解:当子问题足够小时,用简单的方法解决 3.合并 ...
最新文章
- 数据库维护优化及后期改进约定.实践篇
- 如何诊断crs 安装时 root.sh 脚本执行错误
- 史上最简单JS复制功能,兼容安卓ios!
- 备份和迁移Kubernetes应用程序利器-velero
- C语言数据结构知识点小结(全)
- 一种可以穿透还原卡和还原软件的代码(转)
- 如何使用PowerShell批量删除注册表项
- 收藏 | 基于深度学习的图像匹配技术一览
- win7添加网页ftp服务器地址,win7添加ftp服务器地址
- C#直接调用IE打开指定的网页文件
- (4)pokeman_用图片对模型进行测试
- 第八届蓝桥杯全国总决赛真题解析
- centos图形化磁盘文件管理_centos7图形化分区和ks文件分区的配置
- vue3 +Element-puls ,table 中使用$refs修改scrollTop 到顶部
- hdu 1789 贪心算法
- fatal error C1010:在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include“stdafx.h“”
- 缓存加速--Squid代理服务器应用(传统代理、透明代理)
- 代码即武器:美国开始控制漏洞市场
- 2049. 奶牛摄影
- 【正点原子MP157连载】第一章 本书学习方法-摘自【正点原子】STM32MP1 M4裸机CubeIDE开发指南