二分查找法一般指二分查找二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间...
分类:
编程语言 时间:
2015-12-06 20:56:19
阅读次数:
219
转自: http://www.lishiyu.cn/post/45.html二分法(折半查找)-----------效率高,但要求序列必须有序-->使用范围小了15/2取7不是8/** 二分查找算法 --- 递归算法**/int binSearch( int array[], int...
分类:
其他好文 时间:
2015-12-05 21:01:29
阅读次数:
343
题目说明: 二分查找法是对一组有序的数字中进行查找,传递相应的数据,进行比较查找到与原数据相同的数据,查找到了返回对应的数组下标,失败返回-1。 题目解析: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动...
分类:
编程语言 时间:
2015-11-25 00:23:07
阅读次数:
206
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。折半查找法的两种实现折半查找法思想:在有序表中,把待查找数据值与查找范围的中间元素值进行比较,会有三种情况出现:1)待查找数据值与中间元...
分类:
移动开发 时间:
2015-11-20 00:04:16
阅读次数:
158
static bool whilehalf(int n) { int low = 0; //低位 int hight = arr.Length - 1; //高位 int c = (hight + low)/2...
分类:
其他好文 时间:
2015-11-16 22:28:35
阅读次数:
173
折半查找二分查找又称折半查找优点:比较次数少,查找速度快,平均性能好;缺点:要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,..
分类:
其他好文 时间:
2015-11-07 19:08:37
阅读次数:
296
#include<stdio.h>
#include<stdlib.h>
intbinsearch(intx,intarr[],intleft,intright)
{
while(left<=right)
{
intmid=(left+right)/2;
if(arr[mid]==x)
{
returnmid;
}
elseif(arr[mid]<x)
{
left=mid+1;
}
else
{
right=mid-1;
}
}
return-1;
}
intmain()..
分类:
编程语言 时间:
2015-10-31 18:39:55
阅读次数:
214
#include<stdio.h>intbin_search(intarr[],intsize,intkey){intleft=0;intright=size-1;while(left<=right){intmid=(left+right)/2;if(arr[mid]>key)right=mid-1;elseif(arr[mid]<key)left=mid+1;else{returnmid;//如果能找到,则返回mid下标}}return-1;如果找..
分类:
编程语言 时间:
2015-10-28 07:09:21
阅读次数:
262
顺序查找并没有对表中的关键字域的顺序做出任何假设,与顺序查找不同,在折半查找中,表中的记录是按关键字域有序排列的,其比较会出现下面三种结果:
searchumn< list[middle].key,此时,无需考虑位于list[middle]和list[n-1]之间的记录,而继续查找位于list[0]和list[middle-1]间的记录。
searchnum=list[middle].key,此时...
分类:
其他好文 时间:
2015-10-26 13:48:31
阅读次数:
162
#include<stdio.h>
#include<stdlib.h>
voidfind(intarr1[],intkey,intright)
{
intleft=0,mid;
while(left<=right)
{
mid=(left+right)/2;
if(key==arr1[mid])
{
printf("\n找到了,您要找的数是%d,位置为%d\n",key,mid+1);
break;
}
elseif(key>arr1[mid])..
分类:
编程语言 时间:
2015-10-22 06:51:21
阅读次数:
157