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

目录
  • (1)python实现顺序查找
  • (2)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;
}

到此这篇关于c++和python实现顺序查找实例的文章就介绍到这了,更多相关c++和python实现顺序查找内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python顺序结构语句详解

    目录 1.赋值语句 2.输入/输出语句 总结 程序设计中三种基本机构是顺序结构.选择结构和循环结构. 顺序结构语句是程序中最基础的语句,赋值语句.输入/输出语句.模块导入语句等都是顺序结构语句. 1.赋值语句 name = "静若晨光" age = 18 name,inf0 = "静若晨光",[20180606,'某某大学大三学生','女'] #分别赋值 增强赋值语句 增强赋值运算 i+= 12 相当于i=i+12 序列分解赋值 元组分解赋值: name,age =

  • C++ 实现带监视哨的顺序查找算法

    监视哨往往是程序里面的一个变量,如果是对数字排序的话,那么该变量一般是数值型变量.变量的赋值就相当于哨兵,当排序数列中出现与哨兵相等的值或有某种既定关系出现时,就做一种操作,比如说停止排序,或进行下一趟排序. 举例: 顺序检索的算法描述如下 int Search_Sequen(SSTable ST,KeyType key){ //在线性表ST中顺序检索其关键字等于Key的数据元素, //若找到,函数值为该元素在表中的位置,否则为-1. ST.element[ST.length].key=key;

  • C++实现顺序表的常用操作(插入删出查找输出)

    实现顺序表的插入,删除,查找,输出操作在C语言中经常用到.下面小编给大家整理实现代码,一起看下吧 代码如下所示: #include<iostream> using namespace std; #define MAXSIZE 15 typedef int DataType; typedef struct { DataType data[MAXSIZE]; //通常用一位数组来描述顺序表的数据存储 int SeqLength; /*线性表长度*/ } SeqList; SeqList *Init

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

    目录 (1)python实现顺序查找 (2)C++实现顺序查找 如何在一堆数据中找到某个数值的位置? 数值型数据作为信息的基本载体,广泛用于各种信息的记录,这些数据不仅需要被存储,更需要被使用.因此,从数据库中正确的找到目标数据,是至关重要的操作. 我们先不考虑计算机是如何完成数值查找的,你会如何从下面这张表(黑色是数值,蓝色是位置索引)中找到724这个数值? 显然,上面有序表所有的数值都按照次序进行排列,人眼可以根据数值大小关系确定区间从而很快的找到724在133位置上.但是,当我们面临的是几

  • Python实现二分查找算法实例

    本文实例讲述了Python实现二分查找算法的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python import sys def search2(a,m): low = 0 high = len(a) - 1 while(low <= high): mid = (low + high)/2 midval = a[mid] if midval < m: low = mid + 1 elif midval > m: high = mid - 1 else:

  • JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】

    本文实例讲述了JavaScript数据结构与算法之检索算法.分享给大家供大家参考,具体如下: javascript数据结构与算法---检索算法(顺序查找.最大最小值.自组织查询) 一.顺序查找法 /* * 顺序查找法 * * 顺序查找法只要从列表的第一个元素开始循环,然后逐个与要查找的数据进行比较. * 如果匹配到了,则结束查找. * 如果到了列表的结尾也没有匹配到,那么这个数据就不存在于这个列表中. * */ function seqSearch(arr, data) { for (var i

  • 对Python random模块打乱数组顺序的实例讲解

    在我们使用一些数据的过程中,我们想要打乱数组内数据的顺序但不改变数据本身,可以通过改变索引值来实现,也就是将索引值重新随机排列,然后生成新的数组.功能主要由python中random模块的sample()函数实现. sample(population, k) method of random.Random instance Chooses k unique random elements from a population sequence or set. 下面的代码实现的是打乱iris数据,i

  • python二分法查找实例代码

    对于要搜索的元素越多,二分查找速度比简单查找快的更多 这是二分查找算法的优点,但二分算法也有缺点,二分算法只针对有序的列表,这样插入和删除就会很困难,因此,折半查找方法只适合不经常变动的有序列表  二分查找有个很重要的特点,就是不会查找数列的全部元素,而查找的数据量其实正好符合元素的对数,正常情况下每次查找的元素都在一半一半地减少.所以二分查找的时间复杂度为 O(log2n) 是毫无疑问的.当然,最好的情况是只查找一次就能找到,但是在最坏和一般情况下的确要比顺序查找好了很多. 题目一:给定一个

  • C++和python实现阿姆斯特朗数字查找实例代码

    1.题目解释 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数. 例如1^3 + 5^3 + 3^3 = 153. 1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407 2.判断一个数是否为阿姆斯特朗数 1.先来一个简单的代码,判断一个数是否为阿姆斯特朗数: 来看看C++写的 #include <iostream> using namespace std; int main() { int n, r, su

  • python之Character string(实例讲解)

    1.python字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串,l Python不支持单字符类型,单字符也在Python也是作为一个字符串使用. >>> var1 = 'hello python' #定义字符串 >>> print(var1[0]) #切片截取,从0开始,不包括截取尾数 h >>> print(var1[0:5]) hello >>> print(var1[-6:]

  • Python实现简单查找最长子串功能示例

    本文实例讲述了Python实现简单查找最长子串功能.分享给大家供大家参考,具体如下: 题目选自edX公开课 MITx: 6.00.1x Introduction to Computer Science and Programming 课程 Week2 的Problem Set 1的第三题.下面是原题内容. Assume s is a string of lower case characters. Write a program that prints the longest substring

  • Python中顺序表原理与实现方法详解

    本文实例讲述了Python中顺序表原理与实现方法.分享给大家供大家参考,具体如下: Python中的顺序表 Python中的list和tuple两种类型采用了顺序表的实现技术,具有顺序表的所有性质. tuple是不可变类型,即不变的顺序表,因此不支持改变其内部状态的任何操作,而其他方面,则与list的性质类似. list的基本实现技术 Python标准类型list就是一种元素个数可变的线性表,可以加入和删除元素,并在各种操作中维持已有元素的顺序(即保序),而且还具有以下行为特征: 基于下标(位置

  • python搜索算法原理及实例讲解

    一般我们在解决问题时候,经常能碰到好几种解决方式,总归是有最优,还有最不推荐的选择的,针对搜索算法也一样,因为能实现的方式也有很多个,因此,不知道大家在什么场景里使用这些算法,反正小编都把这些算法整理出来了,供大家选择,另外针对个人理解,大家也可以参考哪个更好使用哦~ 搜索算法 线性搜索 按一定的顺序检查数组中每一个元素,直到找到所要寻找的特定值为止.是最简单的一种搜索算法. 二分搜索算法 这种搜索算法每一次比较都使搜索范围缩小一半. 插值搜索算法 是根据要查找的关键字key与顺序表中最大.最小

随机推荐