C语言查找算法之顺序查找、二分查找(折半查找),最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些。

  1. 顺序查找

    /*顺序查找
    顺序查找是在一个已知无(或有序)序队列中找出与给定关键字相同的数的具体位置。
    原理是让关键字与队列中的数从最后一个开始(或第一个)逐个比较,直到找出与给定关键字相同的数为止
    它的缺点是效率低下
    */
    #include<stdio.h>
    void main(){
    int i ,num,arr[]={,,,,,,,,,};
    int size = sizeof(arr)/sizeof(int);
    printf("请输入要查询的值:");
    scanf("%d",&num);
    for(i=;i<size;i++){
    if(num==arr[i]){
    break;
    }
    }
    if(i!=size)
    printf("要查询的值%d在第%d个位置",num,i+);
    else
    printf("未找到值%d",num); getch();
    }
  2. 二分查找
    /*二分查找
    二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。
    但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
    */
    #include<stdio.h>
    void main(){
    int mid,low,high,num,arr[]={,,,,,,,,,};
    int size = sizeof(arr)/sizeof(int);
    printf("请输入要查询的值:");
    scanf("%d",&num);
    low = ;
    high = size;//初始low和high的值
    while(low<=high){
    mid = (low+high)/;//取中值
    if(arr[mid]==num) break;//找到,结束循环此时low<=high
    else if(arr[mid] < num) low = mid+;//如果目标值比当前中间值大,说明目标值在中间值的后面low移动到mid+1
    else high = mid - ;
    }
    if(low <= high)//找到,输出
    printf("要查询的值%d在第%d个位置",num,mid+);
    else //未找到
    printf("未找到值%d",num); getch();
    }

C语言查找算法之顺序查找、二分查找(折半查找)的更多相关文章

  1. 算法之顺序、二分、hash查找

    算法之顺序.二分.hash查找   一.查找/搜索 - 我们现在把注意力转向计算中经常出现的一些问题,即搜索或查找的问题.搜索是在元素集合中查找特定元素的算法过程.搜索通常对于元素是否存在返回 Tru ...

  2. 9.算法之顺序、二分、hash查找

    一.查找/搜索 - 我们现在把注意力转向计算中经常出现的一些问题,即搜索或查找的问题.搜索是在元素集合中查找特定元素的算法过程.搜索通常对于元素是否存在返回 True 或 False.有时它可能返回元 ...

  3. Java中的查找算法之顺序查找(Sequential Search)

    Java中的查找算法之顺序查找(Sequential Search) 神话丿小王子的博客主页 a) 原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数 ...

  4. 查找算法(顺序查找、二分法查找、二叉树查找、hash查找)

    查找功能是数据处理的一个基本功能.数据查找并不复杂,但是如何实现数据又快又好地查找呢?前人在实践中积累的一些方法,值得我们好好学些一下.我们假定查找的数据唯一存在,数组中没有重复的数据存在. (1)顺 ...

  5. 数据结构与算法之PHP查找算法(顺序查找)

    对于查找数据来说,最简单的方法就是从列表的第一个元素开始对列表元素逐个进行判断,直到找到了想要的结果,或者直到列表结尾也没有找到,这种方法称为顺序查找. 一.基本写法 顺序查找的实现很简单.只要从列表 ...

  6. 查找算法(4)--Fibonacci search--斐波那契查找

    1.斐波那契查找 (1)说明 在介绍斐波那契查找算法之前,我们先介绍一下很它紧密相连并且大家都熟知的一个概念——黄金分割. 黄金比例又称黄金分割,是指事物各部分间一定的数学比例关系,即将整体一分为二, ...

  7. 【算法•日更•第二期】查找算法:三分VS二分

    ▎前言:函数 如果你已经上过初二的数学课了,那么你十有八九会被函数折磨到吐血,这是一种中考压轴题类的题目,往往分类讨论到你恶心.不过没学过也不打紧,现场讲解一下: ☞『数学中的函数』 一般地,如果在一 ...

  8. [Data Structure & Algorithm] 七大查找算法

    查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找.本文简单概括性的介绍了常见的七种查找算法,说是七种,其实二分查找.插值查找以及斐波那契查找 ...

  9. 顺序查找 && 折半查找

    顺序查找                                                             算法描述 顺序比较即可. 平均查找长度 (n+1)/2, 其中n为表长 ...

随机推荐

  1. Entity Framework查询生成大量的子查询,如何避免?求救

    最近使用Entity Framework做一个中型的项目,一张表含有千万条数据,并没有使用很复杂的查询,只是程序上使用了DTO进行帅选数据,且使用了分页,效果很不理想.经过跟踪sql,我发现很多简单的 ...

  2. CodeForces 17E Palisection(回文树)

    E. Palisection time limit per test 2 seconds memory limit per test 128 megabytes input standard inpu ...

  3. 向spider中传递参数

    1.这里采用run.py脚本方式 # 通过CrawlerProcess同时运行几个spider import scrapy from scrapy.crawler import CrawlerProc ...

  4. 超哥带你学网络编程部分blog

    https://www.cnblogs.com/clschao/articles/9593164.html  网络编程 https://www.cnblogs.com/clschao/articles ...

  5. curl post CURLOPT_POSTFIELDS

    PHP: curl_setopt - Manual http://php.net/manual/en/function.curl-setopt.php CURLOPT_POST TRUE to do ...

  6. Checksum 磁盘扇区故障检测

    w https://en.wikipedia.org/wiki/Checksum https://zh.wikipedia.org/wiki/校验和 A checksum is a small-siz ...

  7. SQL中的函数 •Aggregate 函数 •Scalar 函数

    合计函数  :Aggregate是针对一系列值的操作,返回一个单一的值 Scalar 函数是针对一个单一的值的操作,返回基于输入值的一个单一值 合计函数: AVG()返回某列的平均值:COUNT()返 ...

  8. Centos 软链接命令(十)

    链接命令:ln  (link) ln -s [源文件] [目标文件] 功能描述:生成链接文件 选项: -s 创建软链接 硬链接特征: 1,拥有相同的i节点和存储block块,可以看作是同一个文件: 2 ...

  9. 转+总结!! maven的package与install命令区别

    如果b项目依赖a项目,而a打了包(package),jar仅仅时打到了a项目的target下.这时编译b项目,还是会报错,找不到所依赖的a项目,说明b项目在本地仓库是没有找到它所依赖的a项目. 然后, ...

  10. 字符串 (string)与字节数组(byte[])之间的转换

    string str = "abc" //字符串转成编码为GB2312的byte[] byte[] pData =System.Text.Encoding.GetEncoding( ...