查算法:折半查算法实现及分析

算法折半查算法实现及分析
折半查算法介绍
折半查(Binary Search)⼜称为⼆分查。它的前提是线性表中的记录必须是关键码有序(通常从⼩到⼤有序),线性表必须采⽤顺序存储。从算法名称可以看出算法的思路,先取有序序列中间值与查值进⾏⽐较,中间值⼩于查值 就查后⼀⼦表,如果中间值⼤于查值 就查前移⼦表,直到查到或者⼦表不存在为⽌。由于折半查的查范围是成倍的缩写,所以折半查法的算法时间复杂度为logn。
折半查算法代码
代码简单哟,因为我们并不知道循环次数,所以优先采⽤的while 循环,当然for、while、do while 循环都可以相互转换的哈。yjp
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//折半查法 arr数组,length 数组长度,key 查的关键字
//返回查值的下标,没查到返回-1
int Binary_Search(int *arr, int length, int key)
oltc
{
int low = 0;//低位下标
int high = length-1;//⾼位下标
int mid;//中间值下标
while (low <= high)
{
mid = (low + high) / 2;
if (key < arr[mid])
{
high = mid - 1;
}
else if(key > arr[mid])
{
low = mid + 1;
}
else
{
return mid;
基督教圣歌}
}
return -1;
}
int main(int argc, char *argv[])
{
int arr[10] = { 0,1,2,3,4,5,6,7,8,9};
int index1 = Binary_Search(arr, 10, 5);
信息系统集成int index2 = Binary_Search(arr, 10, 100);
数学课堂教学的有效性
printf("index1 = %d,index2 = %d\n",index1,index2);
return 0;
}
环太平洋联盟
运⾏结果检测

本文发布于:2024-09-21 21:40:38,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/397856.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

下一篇:查子系统
标签:查找   算法   折半
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议