标签:i++ 下标 查询 bre .com 通过 ima 二分 void
从一个已知的数组中查找其中某个数字,可以通过计算机逐个取对比查找,但效率会很慢,这时可以使用“二分法”提高查找的效率。
二分法注意事项及原理:
1、要查找的元素必须是有序排列的;
2、将待查找的数字与数组中的中间位置进行比较。
3、如果比中间位置的元素值小,去左边查找(更改结束位置)
4、如果比中间位置的元素值大,去右边查找(更改起始位置)
#include <stdio.h>
void main()
{
int nums[9]={1,2,3,4,5,6,7,8,9};
int i=0; // 用来记录查询的次数
int check; //待查寻数字
int left,right,middle;
printf("输入你要查询的数字:\n");
scanf("%d",&check);
left=0; //确定最左端数字的初始下标
right=8; //确定最右端数字的初始下标
while (left<=right){ //这里一定注意是 <= 号,如果写成 < 号 会出现 bug
i++;
middle=(left+right)/2; //确定中间位置
if(check>nums[middle]){
left=middle+1;
}
else if(check<nums[middle]){
right=middle-1;
}
else{
printf("您要查找的数字的下标为:%d\n",middle);
break;
}
}printf("共查找了%d次找到该元素!\n",i);
}
效果图:
标签:i++ 下标 查询 bre .com 通过 ima 二分 void
原文地址:http://www.cnblogs.com/ruo-xi/p/6849021.html