查找之折半查找
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
C语言实现如下:
[cpp]
#include <stdio.h>
void display(int array[],int size){
printf("the array is:");
int i;
for(i=0;i<size;i++){
printf("%d ",array[i]);
}
printf("\n");
}
void middle(int array[],int size,int num){
int first=0,last=size-1,middle=0;
while(first <= last){
middle = (first+last)/2;
if(array[middle] > num){
last = middle-1;
}else if(array[middle] < num){
first = middle+1;
}else{
printf("this num index is %d\n",middle);
return;
}
}
printf("this num is not found\n");
}
int main(void){
int array[10]={1,2,46,67,69,120,121,262,456,500};
display(array,10);
middle(array,10,121);
return 0;
}
补充:软件开发 , C++ ,