【发布时间】:2018-03-20 05:26:18
【问题描述】:
矩阵的形式是
10 | 13 | 43 | 61 | 67 | 83
14 | 24 | 47 | 71 | 3 | 94
22 | 33 | 51 |82 | 88 | 96
27 | 41 | 52 | 84 | 92 | 99
38 | 45 | 52 | 90 | 95 | 101
105|111 |121 |133 |144 |149
找到 43,60,144
给定一个二维数组,其数值按行按 4 列按列排序。使用二进制搜索查找数组中是否存在值。
我已经通过图像中的二进制搜索对其进行了跟踪。 第一次尝试: 我通过首先找到中点(51)来追踪它。找到第一个中点后,我将矩阵分为两部分。第一部分是上半部分(对角线 10-51),第二部分是剩余部分。我可以这样划分矩阵吗(第一次尝试)?
第二次尝试:我又取了一个中点(51),分为上下半部分。上半部分和下半部分用对角线数字取。
我无法找到给定的值。 还有其他条件可以找到数字:43,60,144 吗?
二维数组:
int no[6][6]={{10,13,43,61,67,83},
{14,24,47,71,73,94},
{22,33,51,82,88,96},
{27,41,52,84,92,99},
{38,45,60,90,95,101},
{105,111,121,133,144,149}
};
【问题讨论】:
-
我看不到任何二维数组。你能发布你的实际数组吗?如果它是数组格式,那么做你想做的事情真的很容易。
-
是的。我会在几分钟后发布二维数组。
-
@ked 你想知道“43,60,144”它们都存在还是其中任何一个存在
-
如果它们中的任何一个存在。由于所有都存在于矩阵中。它应该显示所有这些。
标签: php algorithm search matrix binary