源代码
#include<stdio.h>
#define len 11
#define Maxsize 100
typedef struct abc
{
int key;
}SeqList;
int search(SeqList r[],int key);
int main()
{
int i,key;
SeqList r[Maxsize+1];
for(i=1;i<=len;i++)
{
r[i].key=i;
r[11].key=19;
printf("%d ",r[i].key);
}
printf("\n插入:");
scanf("%d",&key);
int inplace=search(r,key);
printf("下标为:%d\n",inplace);
for(i=len+1;i>inplace+1;i--)
{
r[i]=r[i-1];
}
r[i].key=key;
for(i=1;i<=len+1;i++)
{
printf("%d ",r[i].key);
}
printf("\n");
return 0;
}
int search(SeqList r[],int key)
{
int bijiao=0;
int mid;
int high=len,low=1;
while(low<=high)
{
mid=(high+low)/2;
bijiao++;
if(r[mid].key==key)
{
printf("比较了%d次\n",bijiao);
return mid;
}
else if(r[mid].key>key)
{
high=mid-1;
}
else
{
low=mid+1;
}
}
printf("比较了%d次\n",bijiao);
return high;
}