随笔 - 223  文章 - 0  评论 - 78  阅读 - 68万

二分查找的实现

 二分查找又称折半查找,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。折半搜索每次把搜索区域减少一半,时间复杂度为Ο(logn)。

优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。

算法要求:

  1. 必须采用顺序存储结构。
  2. 必须按关键字大小有序排列。

 

二分查找的递归实现

复制代码
 1 int Search(int ST[],int low,int high,int key)
 2 {
 3     int mid;
 4     while(low<=high)
 5     {
 6         mid=(low+high)/2;
 7         if(key==ST[mid])
 8         {
 9             cout<<"所查找的为第"<<mid+1<<""<<endl;
10             return mid;
11         }
12         else if ((ST[low]<=ST[high]&&ST[mid]<=key)||(ST[low]>ST[high]&&ST[mid]>=key))
13             return Search(ST,mid+1,high,key);
14         else
15             return Search(ST,low,mid-1,key);
16     }
17     cout<<"不存在该元素"<<endl;
18     return 0;
19 }
复制代码

 

posted on   Arthurian  阅读(253)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示