折半查找

来源:互联网 发布:ubuntu 桌面u盘路径 编辑:程序博客网 时间:2024/05/21 20:31
#include<stdio.h>int main(){int i,j,a[20],k;int first=0,last=20;      //这边last的初始化没有限制;printf( "请输入十个数:\n" );for( i=0; i<10; i++ ){scanf("%d", &a[i]);     //可由终端输入  也可初始化多少个数;}printf( "请输入你要找的数:\n" );scanf( "%d",&j );i = ( first+last )/2;         //一开始便要将查找数的范围分成两部分;while( j<last)                //此判断便是用来判断是否输出所查的数  j;{if( a[i]> j)              //相比较{last = i-1;           //由后往前通过last--查找;}else if( a[i]< j)          //相比较{first = i+1;      //由前往后通过first++查找;}elsebreak;i = ( first+last )/2;  //在循环中加入折半    可以起到抑制折半的效果;}printf("查找的数是:%d",j);return 0;}
注  :   折半查找必须是查找按一定顺序输入

0 0
原创粉丝点击