Java教程

折中查询算法

本文主要是介绍折中查询算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

其主要实现方法为通过输入数据与数组中间值进行比较,当输入数据大于中间值左边值加一,从而将中间值右移比较,知道找到需要得数据.

同理  其输入数据小于中间值时,右边值减一,缩小中间值.

#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
int main()


{
int arr1[]={0,1,2,3,4,5,6,7,8,9,10}; //申请一个数组
int sz,k;
int left=0;

sz=sizeof(arr1)/sizeof(arr1[0]); //求字节长度,
int right=sz-1;                          //申请最右边的下标
scanf("%d",&k);
while(left<=right)                //判断左边下标是否等于右边下标
{
int mid=(left+right)/2;    // 取中间值并将中间值赋值给mid

if(k>arr1[mid])   // 中间值与输入值进行比较,如果k>中间值 ,
{
left++ ;        //增加右边下标值 ,否则减小右边下标志
}
else if(k<arr1[mid])
{
right--;
}
else        //如果k=mid 直接输出下标为mid的值
{
printf("找到了%d",mid);
break;

}
}

return 0;
}

这篇关于折中查询算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!