博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
树的引子, 顺序查找和二分查找
阅读量:6637 次
发布时间:2019-06-25

本文共 1810 字,大约阅读时间需要 6 分钟。

顺序查找

1 Position SequentialSearch(List Tbl, ElementType K)2 {3     Position i;4     Tbl->Data[0] = K;5     for (i = Tbl->Last; Tbl->Data[i] != K; i--);6     return i;7 }

二分查找

1 Position BinarySearch(List Tbl, ElementType K) 2 { 3     Position Left, Right, Mid; 4     Left = 1; 5     Right = Tbl->Last; 6      7     while (Left <= Right) 8     { 9         Mid = (Left + Right) / 2;10         if (Tbl->Data[Mid] < K) 11             Left = Mid + 1;12         else if (Tbl->Data[Mid] > K) 13             Right = Mid - 1;14         else15             return Mid;16     }17     return NotFound;18 }

测试这两个查找的剩余代码

1 #include 
2 #include
3 4 #define MAXSIZE 15 5 typedef int ElementType; 6 typedef int Position; 7 #define NotFound 0 //找不到则返回0 8 9 struct Array{10 ElementType Data[MAXSIZE];11 int Last;12 };13 typedef struct Array* List;14 15 List CreateArray()16 {17 List Tbl = (List)malloc(sizeof(struct Array)); //已经为Data数组分配好了空间18 printf("%d\n", sizeof(struct Array));19 //Tbl->Data = (ElementType*)malloc(sizeof(ElementType) * MAXSIZE);20 Tbl->Last = 0;21 return Tbl;22 }23 24 void InsertA(List Tbl, ElementType X)25 {26 Tbl->Data[++Tbl->Last] = X;27 }
1 int main() 2 { 3     List Tbl = CreateArray(); 4     int result; 5     for (int i = 0; i <10; i++) 6         InsertA(Tbl, i + 15); 7     for (int i = 0; i < Tbl->Last; i++) 8         printf("%d ", Tbl->Data[i]); 9 10     //result = SequentialSearch(Tbl, 19);11     result = BinarySearch(Tbl, 19);12     if (result)13         printf("\nFind %d at index %d\n", 19, result);14     else15         printf("\nNot found\n");16 17     for (int i = 0; i < Tbl->Last; i++)18         printf("%d ", Tbl->Data[i]);19     return 0;20 }

 

转载于:https://www.cnblogs.com/hi3254014978/p/9744897.html

你可能感兴趣的文章
开始→运行→输入的命令集锦
查看>>
sqlserver导出带数据的脚本
查看>>
查看端口与服务的对应关系
查看>>
Web中播放Flash
查看>>
windows server2012R2 数据库的还原
查看>>
[LINUX-操作系统]pc机上安装Enterprise Linux操作系统,无法启动图形界面
查看>>
squid 配置文件详解
查看>>
linux下httpd服务阶段实验
查看>>
常用的DOS命令和运行命令总结(不常用的不介绍,节省学习时间成本)【高手请绕道】...
查看>>
HNUSTOJ-1639 分糖果(几何)
查看>>
我的友情链接
查看>>
Linux 服务篇之——httpd的配置(一)
查看>>
亲测!阿里云公共DNS,感觉不错!
查看>>
mysql 的日志的启动与查看
查看>>
MySQL数据迁移实战
查看>>
Eclipse如何安装JD-Eclipse反编译插件
查看>>
ioS开发知识(二十三)
查看>>
Python第三周 学习笔记(1)
查看>>
redhat7.2搭建OwnCloud 10搭建私有云,搭owncloud的环境是 LAMP
查看>>
openstack概念架构
查看>>