基本思想:
从表的一端开始,顺序扫描线性表,依次将扫描到的结点关键宇和给定值K相比较。若当前扫描到的结点关键字与K相等,则查找成功;若扫描结束后,仍未找到关键字等于K的结点,则查找失败。
顺序查找的优点:算法简单,且对表的结构无任何要求,无论是用向量还是用链表来存放结点,也无论结点之间是否按关键字有序,它都同样适用。
顺序查找的缺点:查找效率低,因此,当n较大时不宜采用顺序查找。
算法的实现:
// 顺序查找算法
// 在 array[0...length-1]中顺序查找关键字为value的记录 ,查找成功时返回该记录的下标序号
int sequelfSearch(int array[], int length, int value) {
if(NULL == array || 0 == length) {
return -1;
}
for(int index = 0; index < length; index++){
if(value == array[index]) {
return index;
}
}
return -1;
}
int main(int argc, const char * argv[]) {
int array[8] = { -4, -9, -5, 0, 2, 4, 8, 6 };
int index = sequelfSearch(array, 8, 6);
printf(" %d \n", index);
return 0;
}