zoukankan      html  css  js  c++  java
  • 查找算法 分享1:顺序查找

    学知识一定要记住口诀,才能学的好,学的快!分享一篇最简单的查找算法--顺序查找。

     顺序查找秘诀:遍历数组元素,逐个查找,匹配

    #import <Foundation/Foundation.h>


    int main(int argc, const char * argv[])
    {

        @autoreleasepool {
            
            int i, x, n = 0;
            int a[10];
            printf("请输入10个数字!\n");
            for (i = 0; i < 10; i++) {
                scanf("%d", &a[i]);
            }
            printf("请输入要查找的数:");
            scanf("%d", &x);
            
           n = orederSearch(a, x);
            
            if (n < 0) {
                printf("没有找到您要找的数。\n");
            }
            else{
            
                printf("您要找的数%d,在数组中第%d个元素处。\n", x, n);
            }
            
        }
        return 0;
    }

    int orederSearch(int a[], int x)
    {
        int i, f=-1, num = 0;
        for (i = 0; i < 10; i++)
            if (x == a[i])
            {
                f = i + 1;
                num++;
                break;
            }
        return f;

    (注:上面的代码,只能找到一个数字,不能找到重复的数字。有兴趣的话,可以完善下,呵呵。)

    1.顺序查找是在一个无序队列中找出与给定关键字相同的数的具体位置。

    原理是让关键字与队列中的数从第一个开始逐个比较,直到找出与给定关键字相同的数或者搜索完整个数据列为止。

    2.优点:算法简单且对表的结构无任何要求。无论是用向量还是用链表来存放结点,而且不管结点之间是否有序,它都是适用的。

    3.缺点:查找效率低。因此,当数据量较大时不宜采用顺序查找。最理想的情况是比较一次就能够找到目标数据,最差的情况是需要比较完所有的数据后才能找到目标数据,平均比较次数为n/2次。 

  • 相关阅读:
    WinForm容器内控件批量效验是否同意为空?设置是否仅仅读?设置是否可用等方法分享
    EF的CRUD
    SICP 习题 (1.41)解题总结
    陈光标挽救纽约穷人背后有何玄机?
    poj 1276 Cash Machine(多重背包)
    vue的生命周期
    vue mounted组件的使用
    babel-polyfill的几种使用方式
    可拖拽排序的vue组件
    import、export 和 export default
  • 原文地址:https://www.cnblogs.com/hanjun/p/2892319.html
Copyright © 2011-2022 走看看