您的位置:首页 > 其它

寻找插入位置

2016-09-09 13:17 267 查看
#include<stdio.h>
int search(int a[],int n,int tar){  //二分查找
int low=0,high=n-1,mid;
while(low<=high){
mid=(high+low)/2;
if(a[mid]==tar)
return mid;  //返回元素位置
if(tar>a[mid])
low=mid+1;
else
high=mid-1;

}
if(low>high)
return low;  //若查不到,返回目标元素应在数组中的位置
}

int main(){
int n,tar,i,ans;
scanf("%d",&n);
int *a;
a=(int*)malloc(n*sizeof(int));  //一定在这里分配空间
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}

scanf("%d",&tar);
ans=search(a,n,tar);
printf("%d",ans);
return 0;
}


开始的时候一直运行错误,最后发现要使用malloc给数组分配空间就不会报错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  计蒜客
相关文章推荐