【数据结构】算法9.2 有序表查找-折半查找
来源:互联网 发布:美工专用笔记本 编辑:程序博客网 时间:2024/06/04 18:47
#include<stdio.h>#include<string.h>#include<stdlib.h>#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2#define LIST_INIT_SIZE 100 //存储空间的初始分配量#define EQ(a,b) ((a) == (b))#define LT(a,b) ((a) < (b))#define LQ(a,b) ((a) <= (b))typedef int Status;typedef int KeyType;typedef struct{ KeyType key; int weight;}ElemType;typedef struct{ ElemType *elem; //unit elem[0] keep NULL int length; //length of table}SSTable;/*******************************声明部分****************************************/Status InitTable(SSTable *L);Status CreateTalbe(SSTable *L);int Serch_Bin(SSTable ST,KeyType key);//在有序表ST中折半查找其关键字等于key的数据元素/*******************************函数部分****************************************/Status InitTable(SSTable *L){ (*L).elem = (ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType)); if(!(*L).elem) exit(OVERFLOW); (*L).length = 0; return OK;}Status CreateTalbe(SSTable *L){ /* int i; printf("请输入顺序表的长度:"); scanf("%d",&L->length); for(i = 1;i<=L->length;i++){ printf("请输入第 %d 个元素的值:",i); scanf("%d",&L->elem[i].key); }*/ L->length = 11; L->elem[1].key = 5; L->elem[2].key = 13; L->elem[3].key = 19; L->elem[4].key = 21; L->elem[5].key = 37; L->elem[6].key = 56; L->elem[7].key = 64; L->elem[8].key = 75; L->elem[9].key = 80; L->elem[10].key = 88; L->elem[11].key = 92; return OK;}int Serch_Bin(SSTable ST,KeyType key){ int low,high,mid; low = 1; //设置区间初值 high = ST.length; while(low <= high){ mid = (low + high) / 2; if(EQ(key,ST.elem[mid].key)) return mid; else if(LT(key,ST.elem[mid].key)) high = mid - 1; else low = mid + 1; } return 0;}/*******************************主函数部分**************************************/int main(){ SSTable L; InitTable(&L); CreateTalbe(&L); printf(" 21 在有序表中的位置为:%d\n",Serch_Bin(L,21)); return 0;}
0 0
- 【数据结构】算法9.2 有序表查找-折半查找
- 【数据结构-查找】有序表的查找-折半查找
- 有序表折半查找的递归算法
- 数据结构 c语言 折半查找算法(保证有序)
- 有序表的折半查找
- 折半查找:有序表的查找
- 有序表的查找(折半查找)
- 有序表的查找(折半查找)
- 有序表查找——折半查找
- 数据结构学习6——有序表查找(折半查找与斐波那契查找)
- 数据结构查找算法之折半查找
- 数据结构与算法-查找-折半查找
- 折半查找算法(开始序列有序)
- 数据结构-02 数组(有序数组) -二分法查找(折半查找)
- 数据结构--有序表查找
- 有序数折半查找
- 有序表查找_折半查找(二分查找)
- 数据结构之折半查找表
- 使用SimpleAdapter作为适配器时,支持三种类型的 View
- js获取html对象
- java常用排序算法之插入排序
- 输入框input类型为number时,去掉上下箭头方式
- 机房收费文档(二)系统开发计划
- 【数据结构】算法9.2 有序表查找-折半查找
- AC自动机-题目集合
- 51nod-1010 只包含因子2 3 5的数
- Java NIO 之 ServerSocketChannel SocketChannel
- Linux(ubuntu 14.04)下安装jdk(1.8)以及eclipse 最新版本Neon的安装
- ubuntu操作PPA源
- 判断Activity是否位于栈顶
- 【数据结构】算法9.3-9.4 静态树表-构造次优查找树
- 实践 商城商品页 浏览历史记录功能