[牛人杂谈] C语言顺序查找算法及代码

[复制链接]
1298|8
 楼主| classroom 发表于 2023-5-25 11:01 | 显示全部楼层 |阅读模式
 顺序査找是一种简单的査找算法,其实现方法是从序列的起始元素开始,逐个将序列中的元素与所要查找的元素进行比较,如果序列中有元素与所要查找的元素相等,那么査找成功,如果査找到序列的最后一个元素都不存在一个元素与所要査找的元素值相等,那么表明査找失败。接下来通过一段代码来了解顺序査找的具体使用。


view plaincopy to clipboardprint?
#include <stdio.h>  
#include <stdlib.h>  
#include <memory.h>  
  
int ordersearch(int a[], int n, int des){  
    int i;  
    for(i=0; i<n; i++)  
        if(des==a[i])  
            return 1;  
  
    return 0;  
}  
  
int main(){  
    int i, val;  
    int a[8] = {32,12,56,78,76,45,43,98};  
    int ret;  
  
    for(i=0; i<8; i++)  
        printf("%d\t", a[i]);  
     
    printf("\n请输入所要查找的元素:");  
    while(1){  
        scanf("%d", &val);  
        fflush(stdin);  
        ret = ordersearch(a, 8, val);  
  
        if(1 == ret)  
            printf ("查找成功!");  
        else  
            printf ("查找失败!");  
  
        printf("\n请输入所要查找的元素:");  
    }  
  
    return 0;  
}  






  分析上面的运行结果,首先输入所要查找的元素为78,该数在所要查找的序列中是存在的,所以打印输出“查找成功! ”。接下来输入的数值5在所要查找的序列中并不存在,因此打印输出“查找失败!”。
tpgf 发表于 2024-3-5 09:58 | 显示全部楼层
如果数据量比较大的话  比较的次数就会很多
LEDyyds 发表于 2024-3-5 10:18 | 显示全部楼层
对于大量数据是否有更合适的算法
wakayi 发表于 2024-3-5 11:02 | 显示全部楼层
如果需要查找的的数组是一个动态的怎么做?
ClarkLLOTP 发表于 2024-3-5 14:52 来自手机 | 显示全部楼层
LEDyyds 发表于 2024-3-5 10:18
对于大量数据是否有更合适的算法

用哈希表啊
wowu 发表于 2024-3-5 22:20 | 显示全部楼层
如果输入的是其他类型的变量 是不是应该添加报错机制呢
renzheshengui 发表于 2024-3-5 22:53 | 显示全部楼层
把数字全部转换为字符串会不会比较通用点呢
paotangsan 发表于 2024-3-5 23:26 | 显示全部楼层
如果查找的不是数字 而是其他类型的数据怎么做呢
keaibukelian 发表于 2024-3-5 23:59 | 显示全部楼层
可以考虑先给数据进行排序在查找
您需要登录后才可以回帖 登录 | 注册

本版积分规则

549

主题

3480

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部