A-level 数学/OCR/D1/算法
以下是 D1 算法内容的框架,内容来自 AQA、OCR、OCR MEI 和 Edexcel 的规范。并非所有规范都包含以下所有内容。
算法是一组精确的指令,遵循这些指令可以解决问题。它们可以以各种形式呈现,例如文字、图片、流程图。食谱、编织图案、设置 VCR 或组装桌子的说明都是我们在日常生活中可能遇到的算法的例子。
算法的主要优势是我们可以使用计算方法来解决问题。一个人很容易将数字 2、5、3、1 和 4 按升序排列,但要对一个包含 1000 个随机数字的列表进行排序,则需要花费长得多的时间。此外,拥有一个算法意味着其他人可以实现与您相同的结果,而无需弄清楚如何实现它。具体来说,拥有一个算法可能允许计算机执行这些操作。
您可能需要能够遵循或创建流程图,以演示算法。有三种基本形状使用
- 椭圆形,用于开始和停止以及输入和输出。
- 矩形,用于计算和指令。
- 菱形,用于是/否问题。
给定一副 52 张牌,要根据花色进行排序;它们在当前牌序中的位置用数字表示
- 第 1 张牌是什么花色?它是红心。
- 第 2 张牌是什么花色?它是黑桃。我们想要一个黑桃在红心之前的牌组。因此,我们将这两张牌交换,然后退一步。如果我们已经处于开头,则忽略退一步的需要。
- 现在的第 1 张牌是什么花色?它是黑桃。
- 现在的第 2 张牌是什么花色?它是红心。这两张牌的顺序正确,因此我们不交换它们,而是转到牌组中的下一张牌。
- 第 3 张牌是什么花色?它是红心。它与前一张牌相同,因此我们继续到牌组中的下一张牌。
........... 依此类推,直到我们到达倒数第二张牌。我们进行比较,必要时交换,然后停止排序。
- 接下来,我们将红心(或我们想要的任何其他花色)从 52 张牌的牌组中分离出来,现在只剩下 13 张牌的牌组,然后根据 2、3、... J、Q、K、A 对这个较小的牌组进行排序,并对其他 3 种花色也是如此,一次一种。
- 之后,我们几乎完成了,将 4 组各 13 张牌合并成一个包含 52 张牌的大牌组,然后停止。
对于一组数字,将第一个数字与其右侧的数字进行比较。
13, 2, 4, 3, 82
13>2,因此它向右移动。
2, 13, 4, 3, 82
13>4,因此它向右移动。
2, 4, 13, 3, 82
13>3,因此它向右移动。
2, 4, 3, 13, 82
13<82,因此它保持不动。
在第一遍结束时:2, 4, 3, 13, 82
在第二遍结束时:2, 4, 3, 13, 82
在第三遍结束时:2, 3, 4, 13 82
这组数字只需要 2 遍,但在更大的数据集上,它会变得相当大。假设集合中的项目是唯一的,则最大遍数等于集合的大小。
从一组数字中,选择前两个数字并将其划线。这两组数字是在第一遍中排序的。
在第二遍中,要排序的数字范围增加一个,因此比较前三个数字并将它们按顺序排序。
依此类推,直到所有数字都被包含在范围内并排序。
第一遍 - 23, 2, 4, 8, 9 - 23>2,因此 2 被排序到左侧。
第二遍 - 2, 23, 4, 8, 9 - 23>4,因此 4 被排序到左侧。
第三遍 - 2, 4, 23, 8, 9 - 数字已排序
第四遍 - 2, 4, 8, 23, 9 - 数字已排序
最终的数字集 = 2, 4, 8, 9, 23 - 数字已排序
使用中点作为枢轴(或问题中要求您使用的任何值),对每个子列表执行穿梭排序。继续,直到除一个之外的所有项都用作枢轴。
- 将数字集分成 n/2 个子列表。
- 对子列表进行穿梭排序。
- 重新组合数据范围,并将其拆分成之前子列表数量的一半。
- 再次对数据范围进行穿梭排序。
- 重复此过程,直到子列表的数量为 2。
“满箱”算法是一种将可以填满“箱子”的物体组合在一起,以尽可能少的箱子来装载所有物体。剩下的物体再装入其他箱子。以下示例可以很好地说明这一点(注意:这不是考试题,也不代表实际试卷上的复杂程度)。
问)一家电脑软件公司需要将软件发布到容量为 200 kB 的软盘上。文件的大小分别为 25 kB、90 kB、30 kB、120 kB、190 kB、10 kB、70 kB、40 kB、100 kB、140 kB 和 80 kB。需要多少张软盘?使用“满箱”算法来得到一个解决方案。
答)首先,沿着列表查找加起来等于 200 的值。没有特定的方法(每个人似乎都用不同的方法),但我发现找到加起来等于完整 10 的组合会有所帮助,等等。用这些组合填充“箱子”。
箱子 | 文件
A | 120, 80
B | 190, 10
C | 70, 40, 90
这留下了 25、30、100 和 140。使用剩余的值尽可能地接近满箱是有意义的。
(140 + 25 + 30) = 195 <- 所以将这些值放到下一个箱子中,剩下 100 放入最后一个箱子中。
解决方案
箱子 | 文件
A | 120, 80
B | 190, 10
C | 70, 40, 90
D | 140, 25, 30
E | 100
需要 5 张软盘才能容纳所有文件。
依次将每个物体放入第一个可以容纳它的可用空间。
使用其中一种排序算法按大小递减顺序重新排序箱子,然后将首次适应算法应用于重新排序的列表。