打印
[牛人杂谈]

C语言顺序查找算法及代码

[复制链接]
691|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 | 只看该作者
如果需要查找的的数组是一个动态的怎么做?

使用特权

评论回复
5
ClarkLLOTP| | 2024-3-5 14:52 | 只看该作者
LEDyyds 发表于 2024-3-5 10:18
对于大量数据是否有更合适的算法

用哈希表啊

使用特权

评论回复
6
wowu| | 2024-3-5 22:20 | 只看该作者
如果输入的是其他类型的变量 是不是应该添加报错机制呢

使用特权

评论回复
7
renzheshengui| | 2024-3-5 22:53 | 只看该作者
把数字全部转换为字符串会不会比较通用点呢

使用特权

评论回复
8
paotangsan| | 2024-3-5 23:26 | 只看该作者
如果查找的不是数字 而是其他类型的数据怎么做呢

使用特权

评论回复
9
keaibukelian| | 2024-3-5 23:59 | 只看该作者
可以考虑先给数据进行排序在查找

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

415

主题

1998

帖子

1

粉丝