【发布时间】:2020-08-06 13:20:24
【问题描述】:
有人可以解释为什么使用下面的这种方法只返回数组中的第一个匹配值吗?例如,如果我的数组元素是 0、1、2、3 和 4。它将返回 0,而不是 4。数组中的每个值都与其索引 4 匹配,应该在最后一次迭代完成后使用 for 循环返回 4 ?
static int linearSearch(int arr[], int n)
{
int i;
for(i = 0; i < n; i++)
{
if(arr[i] == i)
return i;
}
/* If no fixed point present
then return -1 */
return -1;
}
//main function
【问题讨论】:
-
这里的定点是什么意思?你怎么称呼这个方法?您正在将索引与数组元素进行比较,因此当它们匹配时,它将返回该索引。以您给出的示例为例,对于
i = 0,比较arr[0] == 0将为真,它将返回i,即0。
标签: java arrays algorithm linear-search