基本算法之二分法查找
2014-01-11 19:05
411 查看
#include<stdio.h>
#include<stdlib.h>
int binary(int a[],int x,int n)
{
int mid;
int low=0;
int high=n-1;
if(n==0)
return -1;
while(low<high)
{
mid=(low+high)/2;
if(a[mid]<x)
{
low=mid+1;
}
else
{
high=mid;
}
}
if(a[low]==x)
return low+1;
else
return -1;
}
int main()
{
int t,x,a[]={1,3,4,5,7,8,9,11,32,45};
int n=sizeof(a)/sizeof(int);
printf("数组的长度为%d\n",n);
printf("请输入一个查询数字:\n");
scanf("%d",&x);
t=binary(a,x,n);
if(t==-1)
{
printf("您查询的数字不存在");
}
else
{
printf("查询的数字是数组的第%d位\n",t);
}
system("pause");
return 0;
}
#include<stdlib.h>
int binary(int a[],int x,int n)
{
int mid;
int low=0;
int high=n-1;
if(n==0)
return -1;
while(low<high)
{
mid=(low+high)/2;
if(a[mid]<x)
{
low=mid+1;
}
else
{
high=mid;
}
}
if(a[low]==x)
return low+1;
else
return -1;
}
int main()
{
int t,x,a[]={1,3,4,5,7,8,9,11,32,45};
int n=sizeof(a)/sizeof(int);
printf("数组的长度为%d\n",n);
printf("请输入一个查询数字:\n");
scanf("%d",&x);
t=binary(a,x,n);
if(t==-1)
{
printf("您查询的数字不存在");
}
else
{
printf("查询的数字是数组的第%d位\n",t);
}
system("pause");
return 0;
}
相关文章推荐
- 基本算法简单实现-二分法查找、合并排序、冒泡排序、插入排序、选择排序、快速排序
- 使用c++标准库实现二分法查找基本算法
- 算法第4版(谢路云译)学习笔记(4) -- 二分法查找算法的分析解释
- 二分法快速查找算法
- 算法学习之二分法查找
- python的算法:二分法查找(1)
- 数据结构——算法之(019)( 10分钟写出二分法查找,并调试通过)
- C++版基本算法1--顺序查找
- 基础算法——查找(二分法)(python)
- 基本算法-二分查找
- 学习回顾算法(二分法查找)
- 数据查找算法---顺序查找、二分法查找、二叉树查找、hash查找
- python的算法:二分法查找(2)--bisect模块
- [算法][二分法查找]
- 常用算法(冒泡排序、二分法查找)
- 算法-二分法查找
- js基本算法:冒泡排序,二分查找的简单实例
- Java学习之数组1(1.数组的声明;2.元素为引用数据类型的数组;3.关于main方法里的String[] args;4.数组排序;5.数3退1 数组算法,(用数组模拟链表);6数组查找之二分法;7数组的拷贝)
- C语言之基本算法23—二分法求方程近似根
- 算法学习之查找(顺序、二分法、排序二叉树以及 Hash 表)