#include "stdio.h"
void
Search(
int
p[],
int
low,
int
height,
int
key)
{
int
middle=(low+height)/2;
if
(low>height)
{
printf
(
"没有该数!"
);
return
;
}
if
(p[middle]==key)
{
printf
(
"该数在序列中的第%d个\n"
,middle+1);
return
;
}
else
if
(p[middle]>key)
{
Search(p,low,middle-1,key);
}
else
if
(p[middle]<key)
{
Search(p,middle+1,height,key);
}
}
int
main()
{
int
p[5]={18,21,34,45,58};
Search(&p,0,4,45);
return
0;
}
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int p[5]={1,7,13,15,20};
Search(p,0,4,13);
return 0;
}
void Search(int p[],int low1,int height1,int key)
{
int low=low1;
int height=height1;
while(low<height)
{
int middle=(low+height)/2;
if(p[middle]==key)
{
printf("该数在数列中的第%d",middle+1);
return 0;
}
else if(p[middle]<key)
{
low=middle+1;
}
else if(p[middle]>key)
{
height=middle-1;
}
}
}