二分搜索法
来源:互联网 发布:无忧商务网络智能系统 编辑:程序博客网 时间:2024/06/02 09:42
#include <stdio.h>
#include <stdlib.h>
void main()
{
int a[10],i,j,temp,min,t,site;
for(i=0;i<10;i++)
{
a[i]=rand()%101;//用随机函数产生一个--100的包含个元素的无序数组
/*printf("%d ",a[i]);*/
}
printf("随机产生的数组为:");
for(i=0;i<10;i++)
printf("%d ",a[i]);
//以上为随机产生数组过程
printf("\n");//换行
for(i=0;i<10;i++)
{ min=a[i];
t=i;
for(j=i+1;j<10;j++)
{
if(a[j]<min)
{
min=a[j];
t=j;
}
}
temp=a[i];
a[i]=a[t];
a[t]=temp;
/*printf("%d ",a[i]);*/ //在这里输出排序后的数组也可以。
}
printf("排序后的数组为:");
for(i=0;i<10;i++)
printf("%d ",a[i]);
//以上为排序过程
printf("\n"); //换行
printf("请输入要查找的数字:");
int find;
scanf("%d",&find);
int low = 0;//定义数组低位下标并赋初值
int high = 9;//定义数组高位下标并赋初值
int mid;//定义数组中间下标
site = -1;
while(low<=high)
{
mid=(low+high)/2;
if(find==a[mid])
{
site=mid;//将找到的下标值赋给site,site主要用来记录所找数的位置
break;
}
else
{
if(find<a[mid])
high=mid-1;//将高位往左移,确定查找的终点。用high=mid也可以,只是多计算一次。
else
low=mid+1;//将低位往右移,确定查找的起点。用low=mid也可以,只是多计算一次。
}
}
if(site != -1)
printf("找到了你所需要查找的数字%d,是第%d个数\n",find,site+1);
else
printf("没有找到你输入的数字。");
//以上为二分法查找过程
}
- 二分搜索法
- 二分搜索法
- java 二分搜索法
- 二分搜索法
- 二分搜索法
- 分治法:二分搜索
- 分治法-二分搜索
- 二分查找法与二分搜索树
- 算法之二分搜索法
- 二分搜索法基本思想
- 分治法---二分搜索技术
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- 二分搜索
- Debug和Release区别
- 美军担心军事机器人程序变异 可能毁灭世界
- 基本排序算法的实现
- AS3垃圾回收站机制
- Codeforces Round #133 (Div. 2)
- 二分搜索法
- FPGA静态时序分析模型——寄存器到寄存器
- mysql客户机访问服务器设置( Error No. 1130 )
- 10->2
- 归并排序
- error: implicit declaration of function 'class_device_create' error: implicit declaration of functio
- 使用Spring.Net进行WebService开发(一)环境搭建
- 手把手教新手写jquery插件(转自www.jqueryba.com)
- gprs模块 at 指令发送短信(txt、pdu)