二分查找
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#define N 1024
void main()
{
int a[N]={0};
for (int i=0;i<N;i++)
{
a[i]=i;
printf("%-6d",a[i]);
if ((i+1)%10==0)
{
printf("\n");
}
}
//二分算法
printf("\n\n");
int shang=0;
int xia=1023;
int num=372;
while(shang<=xia)
{
int zhong=(shang+xia)/2;
printf("shang=%d,zhong=%d,xia=%d\n",shang,zhong,xia);
if (num==a[zhong])
{
printf("找到\n");
break;
}
else if (num>a[zhong])
{
shang=zhong+1;
}
else
{
xia=zhong-1;
}
}
system("pause");
}

浙公网安备 33010602011771号