欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

c++和python实现顺序查找实例

时间:2022-07-13 08:27:56|栏目:C代码|点击:

如何在一堆数据中找到某个数值的位置?

数值型数据作为信息的基本载体,广泛用于各种信息的记录,这些数据不仅需要被存储,更需要被使用。因此,从数据库中正确的找到目标数据,是至关重要的操作。

我们先不考虑计算机是如何完成数值查找的,你会如何从下面这张表(黑色是数值,蓝色是位置索引)中找到724这个数值?

显然,上面有序表所有的数值都按照次序进行排列,人眼可以根据数值大小关系确定区间从而很快的找到724在133位置上。但是,当我们面临的是几百万条无序数据时,使用直觉进行搜索就不管用了。为此,我们需要设计出算法来完成精确的搜索过程。

实际上,不管有多少条数据,我们总可以通过逐一对比,进而找到目标数据。下面的gif显示了一个简单的搜索过程,目标数值是98:

上述过程就是顺序查找算法,即将目标数值和数据库中的每个数值进行比较,如果相同则搜索完成,如果不同则继续比较下一处。下面将会采用python和C++分别实现顺序查找算法,代码都比较简单。

(1)python实现顺序查找

def search(data_list, target_value):
    """
    Args:
        data_list: list of data
        target_value: desired to be searched 
    """
    # 定义索引游标
    current_index = 0
    while current_index<len(data_list):
        # 判断当前位置的数值和目标数值是否相等
        if data_list[current_index]==target_value:
            # 相等则返回目标数值位置
            return "target position is {}".format(current_index)
        # 不相等时移动到下一处,继续进行比较    
        current_index += 1
    # 全部数据都搜索完,返回搜索不到    
    return "target value {} not is data list".format(target_value)

(2)C++实现顺序查找

int search(int *pointer,int dataLength, int targetValue) {
    /// 遍历指针指向的数组,并防止越界
    for (int index = 0; index < dataLength; index++) {
            /// 找到则返回位置
        if (pointer[index] == targetValue) {
            return index;
        }
    }
    /// 遍历完成后找不到,则返回-1
    return -1;
}

上一篇:Qt各种字符转换的实现示例

栏    目:C代码

下一篇:C语言进阶几分钟带你理解大小端存储模式

本文标题:c++和python实现顺序查找实例

本文地址:http://www.codeinn.net/misctech/207673.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有