自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 分治--棋盘覆盖(JAVA)

问题描述:在一个2^k * 2^k 个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为特殊方格,且该棋盘为一个特殊棋盘。显然,特殊方格会出现在棋盘 4^k 个位置中的一个位置,进而形成 4^k 个不同的特殊棋盘,例如当 k = 2 时,就会有 16 个 不同的棋盘。在棋盘覆盖问题中,要用到 4 种不同形态的 L 型骨牌覆盖特殊棋盘中出去特殊方格的所有方格,并且任意两个骨牌不能有任何重叠部分。因此,在任意一个2^k × 2^k的特殊棋盘中,要用到的 L 型骨牌个数恰为(4^k-1)/3。(因为2

2022-02-17 22:30:00 783

原创 分治--快速排序(JAVA)

问题描述:将一个无序数组按照从小到大的顺序排序,要求使用快速排序。解题思路:1. 从左向右找一个比基准数大的数,将找到的数下标赋值给指针 L,然后进入 2 ;2. 从右向左找一个比基准数小的数,将找到的数下标赋值给指针 R,然后进入 3 ;3. 交换两个数的位置,然后进入 4 ;4. 继续从 L 向右再找一个比基准数大的数,以及从 R 向左再找一个比基准数小的数,并且将找到两个数的下标分别赋值给指针 L 和 R ,然后交换两个数的位置。直到两个指针 L 和 R 指向同一个数时,此时 L 等于 R

2022-02-16 22:31:27 1026

原创 分治--二分查找(JAVA)

问题描述:给定一个已经按从大到小排好序的数组 arr,数组 arr 中包含 n 个元素,在数组中检索指定元素 x,并返回该元素在数组中的下标,如果没找到返回 -1。分治思想:充分利用元素之间的次序关系,将 n 个元素分成个数大致相同的两半,取数组元素 arr[n/2] 与 x 进行比较,会出现如下3种结果:arr[n/2] = x ,则找到 x,此时为终止条件,算法终止;arr[n/2] > x ,则只要在数组 arr 的左半部分继续搜素 x;arr[n/2] < x ,则只要在数

2021-11-29 20:03:24 754

原创 分治--测试芯片(JAVA)

问题描述:将两片芯片放在测试台上相互测试(比如 A 芯片测试 B,B 芯片测试 A),并且给出测试报告是 “好” 或者 “坏”。假设:好芯片报告一定是正确的;坏芯片报告不一定是正确的(比如有可能报告 “好”,也有可能报告 ”坏“)。测试结果:序号A的报告B的报告推测结果①B “好”A “好”两片都是好的或两片都是坏的②B “好”A “坏”至少有一片是”坏“的③B “坏”A ”好“至少有一片是”坏“的④B “坏”A “坏”至少有一片是”

2021-11-29 19:12:50 848

原创 分治--Hanoi塔(JAVA)

问题描述:设 A , B , C 是三个塔座,开始时 A 上有一叠共n个圆盘,这些圆盘自上而下,由大到小地叠在一起。各圆盘从大到小编号为1,2,···,n,先要求将塔座 A(原始塔座)上的这一叠圆盘移到塔座 B(目标塔座)上,并仍按同样的顺序叠置。在移动圆盘时应该遵守以下移动规则。每次只能移动1个圆盘。任何时刻都不允许将较大的圆盘压在较小的圆盘之上。在满足规则1和规则2的前提下,可将圆盘移至 A , B , C 中任一塔座上。输入 n ,输出 n 个圆盘从 A 移动到 B 的移动过程。解题思

2021-11-27 16:33:11 241

原创 分治--整数划分(JAVA)

问题描述:​将一个正整数n表示成一系列正整数的和,如:n= n1 + n2 +…+ nk (其中 n1 ≥ n2 ≥…≥ nk ≥ 1,k≥1)。正整数n的这种表示称为正整数n的一个划分。正整数n的不同的划分个数称为正整数n 的划分数,记作p(n)例如,正整数n = 6时有如下11种不用的划分,所以p(6)=11.6;5+1;4+2,4+1+1;3+3,3+2+1,3+1+1+1;2+2+2,2+2+1+1,2+1+1+1+1;1+1+1+1+1+1。在正整数n = 6的所有不同的划分中,

2021-11-26 10:33:35 763

原创 分治--二分归并排序算法(JAVA)

问题描述:输入n为数组大小,并输入n个数据,使用归并排序的算法将该数组按由小到大的顺序排列,并将排列后的数组输出算法思路:把长度为n的输入序列分成两个长度为n/2的子序列;将这两个子序列分别采用归并排序;将两个排好序的子序列合并成一个最终序列。算法分析:以数组:**{29,38,65,87,23,27,72}**为例:一、 划分:先将数组划分为两个子数组,如将 {29,38,65,87,23,27,72} 分为 {29,38,65,87} 和 {78,23,27,72}

2021-11-25 19:18:18 965

原创 笔记神器——Trpora 基本操作

​ 家人们好,给大家推荐一款记笔记超级好用的软件——Trpora ,我平时学习的时候是真心离不了它,主要是因为 Trpora 支持多种高级语言的代码编辑区,要知道对于像我们计算机专业的同学来说,有个独立的代码编辑区就会让你的笔记看起来非常整洁,舒适,并且高人一等。因此将 Trpora 推荐给家人们,并且下面是一些关于 Trpora 的基本操作教程。0. 引导下载:1. 百度搜索 Trpora,找到官网进行下载​ 2. 电梯:点击链接访问官网下载后需要先进行一些修改修改流

2021-07-12 13:54:40 567

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除