折半查找
   编程思路:折半排序 就是将一个有序的数组,输入一个数,找这个数所对应的下标位置、
折半听上去就是说一半一半,对。就是这个样子,折半就是将元素的最小下标赋值给一个low 最大下标赋值给high
在定义一个mid变量,mid变量用来定义中间指向的位置。
第一次判断的时候,先去判断这个m是否小于a[mid]这个元素,小于的话说明 这个范围就在0-mid之间 将高下标
赋值mid-1 一次判断下面的。如果是大于的m>a[mid] 说明这个范围是在mid-a[higt]之间 将小下标low = mid+1 
这样就可以找到对应的数的下标。

#include<stdio.h>
#define N 10
/*
折半查找:
编程思路:折半排序 就是将一个有序的数组,输入一个数,找这个数所对应的下标位置、
折半听上去就是说一半一半,对。就是这个样子,折半就是将元素的最小下标赋值给一个low 最大下标赋值给high
在定义一个mid变量,mid变量用来定义中间指向的位置。
第一次判断的时候,先去判断这个m是否小于a[mid]这个元素,小于的话说明 这个范围就在0-mid之间 将高下标
赋值mid-1 一次判断下面的。如果是大于的m>a[mid] 说明这个范围是在mid-a[higt]之间 将小下标low = mid+1 
这样就可以找到对应的数的下标。
**/
void main(){
	
	
	void print(int a[],int n);
	int a [N] = {1,2,3,4,5,6,7,8,9,10};
	print(a,N);
	int m = 0,low = 0,high = N-1,mid = 0,k = -1;
	printf("输入查找的元素:");
	scanf("%d",&m);

 	while(low<=high){
		mid = (low+high/2);
		if(m<a[mid])
			high = mid-1;
		else
			if(m>a[mid])
				low = mid+1;
			else{
			   k = mid;
			   break;
			}
	
	}
	printf("元素下标为%d\n",k);
}

void print(int a[],int n){
	for(int i=0;i<n;i++){
		if(i%5==0)
			printf("\n");
		printf("%d\t",a[i]);
	}
}