二分查找(折半查找)
来源:互联网 发布:60天内禁止转出阿里云 编辑:程序博客网 时间:2024/04/30 03:53
#include<stdio.h>
int dinarysearch(int arr[],int left,int right,int value)
{
int middle=(left+right)/2;
if(left>right)
return -1;
if(value>arr[middle])
return dinarysearch(arr,middle+1,right,value);
if(value<arr[middle])
return dinarysearch(arr,left,middle-1,value);
if(value==arr[middle])
return middle;
}
int main()
{
int arr[]={1,2,3,4,5,6,7};
int value=2;
int i=dinarysearch(arr,0,6,value);
printf("%d\n",i);
getch();
return 0;
int dinarysearch(int arr[],int left,int right,int value)
{
int middle=(left+right)/2;
if(left>right)
return -1;
if(value>arr[middle])
return dinarysearch(arr,middle+1,right,value);
if(value<arr[middle])
return dinarysearch(arr,left,middle-1,value);
if(value==arr[middle])
return middle;
}
int main()
{
int arr[]={1,2,3,4,5,6,7};
int value=2;
int i=dinarysearch(arr,0,6,value);
printf("%d\n",i);
getch();
return 0;
}
改进,修改middle的取值,插值查找:
int x=(value-arr[left])/(arr[right]-arr[left]);
int middle=left+x*(right-value);
0 0
- 折半查找(二分查找)
- 二分查找(折半查找)
- 二分查找(折半查找)
- 折半查找(二分查找)
- 折半查找(二分查找)
- 二分查找(折半查找)
- 折半查找(二分查找)
- 二分查找(折半查找)
- 二分查找(折半查找)
- 折半查找(二分查找)
- 二分查找(折半查找)
- 折半查找(二分查找)
- 折半查找(二分查找)
- 折半查找(二分查找)
- 折半查找(二分查找)
- 二分查找(折半查找)
- 二分查找(折半查找)
- 折半查找(二分查找)
- 通过百度地图API,将百度坐标转换成GPS经纬度
- php 安装http 扩展
- 构建自己的Android代码托管服务器
- hibernate annotation 主键生成策略的相关配置
- https://github.com/Trinea/android-open-project
- 二分查找(折半查找)
- 经纬财富:莱芜现货白银(天通银)交易参数
- C语言程序连接MySQL数据库教程及注意事项 - C语言
- ios strong和weak
- phonegap3.4安装geolocation插件
- Spring DI基础实例解析
- ps入门 工具的使用
- 记录
- Streaming media protocols