查找算法:顺序查找

基本思想:

从表的一端开始,顺序扫描线性表,依次将扫描到的结点关键宇和给定值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;
}

你可能感兴趣的:(查找算法:顺序查找)