#include  " stdafx.h "
#include  < iostream.h >
#include  < malloc.h >

// 顺序表上的查找
int   const  maxsize = 10 ;
typedef  struct
{
    int key;
} rec;

typedef  struct
{
    rec item[maxsize+1];
    int n;                //最后一个元素下标
} sqtable;

int  search_sqtable(sqtable R, int  key)
{
    //设置第0个元素为待查键,它起岗哨的作用,保证循环肯定有匹配的键.没有用正常的循环过程是为了减化操作,提高效率
    R.item[0].key=key;
    int i=R.n;
    while(R.item[i].key!=key)
        i--;
    return i;
}
// 我的书中在讲此节时错误很多,多为印刷错误,我的书应该是正版的,不知道其它如何.书中的
int  binsearch(sqtable R, int  key)
{
    int low=1,hig=R.n;
    while(low<=hig)
    {
        int mid=(low+hig)/2;
        if (R.item[mid].key==key)
        {
            return mid;
        }
        else if (R.item[mid].key>key)
        {
            low=mid+1;                    //书中此处为low=low+1,应该是印刷错误,此处改为low=mid+1
        }
        else if (R.item[mid].key<key)
        {
            hig=mid-1;
        }
    }
    return 0;
}
int  main( int  argc,  char *  argv[])
{
    sqtable table;
    for(int i=1;i<11;i++)
    {
        table.item[i].key=i+100;
    }
    table.n=5;
    cout<<"使用顺序查找:"<<search_sqtable(table,103)<<endl;
    cout<<"使用二分查找:"<<binsearch(table,103)<<endl;
    return 0;
}
    

转载于:https://www.cnblogs.com/fxwdl/archive/2007/08/03/841072.html

6.2顺序表有序表上的查找相关推荐

  1. 查找技术:有序表的对分查找(折半查找)类

    一 查找技术相关总结: 1.顺序查找:(1)如果线性表为无序表(即表中元素的排序是无序的),则不管是顺序存储结构还是链式存储结构,都只能用顺序查找:(2)即使是有序线性表,如果采用链式存储结构,也只能 ...

  2. python数据结构: 有序表

    1. 有序表 ❖有序表是一种数据项依照其某可比性质(如整数大小.字母表先后)来决定在列表中的位置 ❖越"小"的数据项越靠近列表的头,越靠"前" 2.抽象数据类型 ...

  3. html 标题 横线,HTML基本指令讲解:格式框架、标题、横线、文字、有序表与无序表...

    初学HTML编程,记录常用指令,方便自己,方便他人. 1.HTML文件基本格式 HTML文件,所有内容都以""开头,以"~~>"结尾,二者构成一对 同时, ...

  4. 数据结构之顺序表和有序表查找其实现

    顺序表和有序表查找 顺序查找定义:从线性表中的第一个(或最后一个)数据元素开始,逐个进行数据元素关键字和给定值的比较,若某个数据元素的关键字和给定值相等则查找成功:如果直到最后一个(或第一个)数据元素 ...

  5. 对长度为200的有序表进行二分查找_程序员常用的查找算法(顺序、二分、插值、分块、斐波那契)...

    顺序查找 基本思想 属于线性查找和无序查找,从一端开始顺序扫描,直到找到与目标值value相等的元素. 这是最基本的查找方法,也是时间复杂度最高的查找算法. 在数据过多时,这种方法并不适用. 代码实现 ...

  6. 有序表的索引顺序结构查找次数分析

    有序表的索引顺序结构查找次数分析 @(算法学习) 为了提高查找效率,对65025个元素的有序顺序表建立索引顺序结构,在最好情况下查找到表中已有元素,平均需要执行(B)次关键字比较. A. 10 B. ...

  7. 5.顺序表和链表的最值,逆置和归并有序表

    文章目录 一.顺序表和链表的数据结构. 二.最值 2.1 使用顺序表 2.2 使用链表 三.逆置 3.1 顺序表的逆置 3.2 链表的逆置 四.归并(前提:有序的表) 4.1 顺序表实现归并有序表 4 ...

  8. 设置顺序表L是个递增的有序表,试写一算法将number插入L中,并使L任是一个有序表。

    一.实现算法如下: /*有序顺序表的插入*/ void InsertSqlist(Sqlist *L,Elemtype number) {int i;assert(L->length < ...

  9. 顺序表:将两个有序表合并成一个新的有序顺序表

    题目:将两个有序表合并成为一个新的有序顺序表,并由函数返回结果顺序表. 算法思想:假设有AB两个顺序表,要使得合并后仍然有序,因此可以将AB中对应的数作比较,把较小的放入C中,比完之后将剩下的依次放入 ...

最新文章

  1. 腾讯帝国的野蛮生长史
  2. Office CVE-2017-8570 远程代码执行漏洞复现
  3. 【OpenGL】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为 OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★
  4. 面向对象编程(Object Oriented Programming)概念总结及延伸(一)
  5. DB2更改数据文件路径
  6. 【LeetCode之C#解法】 移动零、爬楼梯
  7. js 操作table: insertRow(),deleteRow(),insertCell(),deleteCell()方法
  8. H3C交换机配置ACL禁止vlan间互访
  9. 培训loadrunner感受
  10. PC-hosts 的使用 [可使电脑无法正常上网]
  11. windows下把SD卡格式化成NTFS格式
  12. 三星android智能手机usb驱动程序,三星手机驱动官方下载
  13. c语言公路竖曲线要素代码,竖曲线要素
  14. Mycat生产实践---分表分库案例
  15. mongoDB 文档删除
  16. 掌中革命--手机富媒体
  17. 生活小技巧 | win10开热点给手机使用
  18. mtk flash配置
  19. 软件工程笔记 清华大学刘强etc
  20. 用 justify-content 属性设置子元素两端对齐

热门文章

  1. 计算机经典游戏,永远留在硬盘里!PC玩家舍不得删除的经典游戏(二)
  2. Android 短视频编辑开发前言(一)
  3. linuc和python常用命令是一样的么_linux常用命令汇总
  4. 微信小程序-元素的定位相对绝对固定
  5. Spring中间件 - 什么是中间件
  6. iView Table表格带搜索功能的Table组件
  7. 三星a60android9,中端旗舰再出黑马?三星Galaxy A60用实力说话
  8. [Servlet]HttpServletResponse设置响应标头、缓冲区、语系编码、MIME
  9. HTTP请求URL的大小限制
  10. 基于OpenCV实现对图片及视频中感兴趣区域颜色识别