编辑代码

#include<stdio.h>

//插入排序
void insertsort(int a[],int len){
	int i,j,temp; 
	for(i=1;i<len;i++){
		temp =a[i];
		for(j=i-1;j>=0 && a[j]>temp;j--){
			if(a[j]>temp){
				a[j+1]=a[j];
			}
		}
		a[j+1]=temp;	
	} 
}

//折半查找
int halfIntervalsearch(int a[],int len,int num){
	int high=len-1;
	int low=0;
	int mid;
	//insertsort(a,len);//插入排序
	while(low<=high){
		mid = (high+low)/2;
		if(a[mid] == num){
			printf("%d是数组的第%d个数,下标为%d\n",num,mid+1,mid);
			return 1;
		}
		else if(a[mid]<num){
			low = mid+1;
		}else{
			high = mid-1;
		}
	}
	printf("%d不在数组中\n",num);
	return 0;
}

int main(){
	int a[] = {33,24,12,55,42,27,18,94,36,76};
	int len = 10;    
	insertsort(a,len);  //插入排序 
	printf("插入排序后的结果:");
	for(int i=0;i<len;i++){
		printf("%d ",a[i]);
	} 
	printf("\n");  

	int n=76; 	//排序完成以后查找76所在位置的下标 
	halfIntervalsearch(a,len,n);  
	
    n=25;       //不存在的情况
	halfIntervalsearch(a,len,n);
	return 0;
}