第一次使用半分查找,勉强可以看
封装函数体
int look(int arr[],int num,int r){int left = 0;int right = 0;right = r;while (left <= right) //开始执行半分查找{int midle = left + (right - left) / 2;if (arr[midle] == num){return midle;}else if (arr[midle] > num){right = midle - 1;}else if (arr[midle] < num){left = midle + 1;}if (left>right){return -1;}}
}
主函数,调用封装好的函数
int main()
{int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15 };int r = sizeof (arr) / sizeof (arr[0]) - 1; //求数组的长度int num = 0;int i = 0;printf("请输入要查找的数字:"); //写入要查找的数字scanf("%d",&num); i = look(arr,num,r);if (i == -1) //输出结果 {printf("没找到\n");}else{printf("%d\n", i);}return 0;
}