是否可以通过将循环变量递增 2 而不是 1 来在 O(log n) 时间内执行线性搜索?
Can linear search be executed in a O(log n) time by incrementing the loop variable by 2 instead of 1?
代码中的关键更改可能类似于:
// while loop from 0 to n - 2; i initially = 0
if( arr[i + 1] != element && arr[i] != element) i += 2;
else if(arr[i] == element){ cout << "Element present at: " << i; }
else{ cout << "Element is present at: " << i + 1; return 0; }
你怎么看?
答案是否定的。在最坏的情况下,您必须查看每个元素,并且有 n
个元素。
代码中的关键更改可能类似于:
// while loop from 0 to n - 2; i initially = 0
if( arr[i + 1] != element && arr[i] != element) i += 2;
else if(arr[i] == element){ cout << "Element present at: " << i; }
else{ cout << "Element is present at: " << i + 1; return 0; }
你怎么看?
答案是否定的。在最坏的情况下,您必须查看每个元素,并且有 n
个元素。