分享

C语言中常用的查找方法2---折半查找法

 烧包谷free 2013-08-04
//*************************************************************//
//**  函数名称:                                               //
//**  函数功能:折半查找                                       //
//**  作    者:xt                                             //
//**  时    间:2013/8/4                                       //
//*************************************************************//
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#define  N  10

void main()
{
int i,j,flag,flag1,a[N],x;
int low=0,high=N-1,middle,count=0,temp;

srand(time(NULL));
for(i=0;i<N;i++)
a[i]=rand()%100;
printf("Before Sorting:\n");
for(i=0;i<N;i++)
printf("%3d",a[i]);
printf("\n");                 //需要排序,用冒泡法
for(i=0;i<N;i++)              //冒泡法
{
flag1=0;
for(j=0;j<N-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];a[j]=a[j+1];a[j+1]=temp;
flag1=1;
}
}
if(!flag1)
break;
}
    
printf("After Sorting:\n");
for(i=0;i<N;i++)
printf("%3d",a[i]);

    printf("\n");
printf("Input the Key:");
scanf("%d",&x);


while(low<high)
{
count++;
middle=(low+high)/2;
if(a[middle]==x)
{
flag=1;
break;
}
else if(x>a[middle])
low=middle;
else 
high=middle;
}


if(flag)
printf("找到了%d,查找的次数为%d",x,count);
else
   printf("未找到%d,查找的次数为%d",x,count);
}


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多