我所知道的是线性搜索和顺序搜索是相同的,如果我的知识是正确的,那么请指导我下面的算法是否适用于线性搜索,因为它是一个顺序搜索算法。
- 初始化searcharray、searchno、length。
- 初始化 pos=0。
- 重复步骤 4 直到 pos<=length。
- 如果 searcharray[pos]=searchno
返回 pos
否则将 pos
加 1。
其次,我需要有关如何在数组的第一个元素处移动找到的值的帮助
从数组中线性搜索一个数字,可能成功也可能失败。
您的算法应该定义成功或失败返回。例如成功的位置索引和失败的负数。
试着这样想:移动直到找到位置。
您的号码定义为目标。给定长度和数组 A。
int linearSearch(int target, int* A, int length) {
int pos = length - 1;
while ( pos >= 0 and target != A[pos] ) --pos;
return pos;
}
在这里,如果您的目标编号不在数组中,您将返回 -1。
这将简单而优雅。但是如果您有重复的目标编号,您可能会考虑如何处理它们。返回您找到的一个或返回所有位置。