二分查找
来源:互联网 发布:webgis软件 编辑:程序博客网 时间:2024/04/29 08:57
转自:http://baike.baidu.com/view/610605.htm?fr=ala0_1_1#3
二分查找
[编辑本段]概述
二分查找法
[编辑本段]pascal源代码
program jjzx(input,output); var a:array[1..10] of integer; i,j,n,x:integer; begin writeln('输入10个从小到大的数:'); for i:=1 to 10 do read(a[i]); writeln('输入要查找的数:'); readln(x); i:=1; n:=10; j:=trunc((i+n)/2); repeat if a[j]>x then begin n:=j; j:=trunc((i+n)/2) end else begin i:=j+1; j:=trunc((i+n)/2) end until (a[j]=x) or (i=j) ;{为什么是这个结束循环条件} if a[j]=x then writeln('查找成功!位置是:',j:3) else writeln('查找失败,数组中无此元素!') end. [编辑本段]C语言代码
int BinSearch(SeqList R,KeyType K){ //在有序表R[1..n]中进行二分查找,成功时返回结点的位置,失败时返回零 int low=1,high=n,mid; //置当前查找区间上、下界的初值 while(low<=high){ //当前查找区间R[low..high]非空 mid=low+((high-low)/2);//使用 (low + high) / 2 会有整数溢出的问题 if(R[mid].key==K) return mid; //查找成功返回 if(R[mid].key>K) high=mid-1; //继续在R[low..mid-1]中查找 else low=mid+1; //继续在R[mid+1..high]中查找 } return 0; //当low>high时表示查找区间为空,查找失败 } //BinSeareh[编辑本段]Java的二分查找算法
public class BinarySearch { /** * 二分查找算法 * * @param srcArray 有序数组 * @param des 查找元素 * @return des的数组下标,没找到返回-1 */ public static int binarySearch(int[] srcArray, int des) { int low = 0; int high = srcArray.length-1; while(low <= high) { int middle = (low + high)/2; if(des == srcArray[middle]) { return middle; }else if(des <srcArray[middle]) { high = middle - 1; }else { low = middle + 1; } } return -1; } public static void main(String[] args) { int[] src = new int[] {1, 3, 5, 7, 8, 9}; System.out.println(binarySearch(src, 3)); } }[编辑本段]AAuto的二分查找算法
//二分查找 function binSearch(t,v ){ var p = #t; var p2; var b = 0; do{ p2 = p; p = b + math.floor( (p-b) / 2 ) //二分折半运算 if(p==b)return; if( t[p] < v ){ //判断下限 b = p; p = p2; } }while( t[p]>v ) //判断上限 return t[p]==v && p; } //测试 tab = {} //创建数组,每个元素都是随机数 for(i=1;10 ;1){ tab[i] = math.random(1, 10000) } //插入一个已知数 table.push(tab,5632) //排序 table.sort( tab) io.open() io.print( "数组",table.tostring(tab) ) io.print( "使用二分查找,找到5632在位置:",binSearch( tab,5632 ) )- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- Create Password Protected Zip containing a Single File
- JDK1.6官方下载_JDK6官方下载_JDK1.6API(chm)下载_JDK6APICHM中文参
- 谁是谁的谁?
- 临时中转
- Verify a Zip's Password(trueZip library)
- 二分查找
- 关于linux下iscsi的安装和配置
- RailsConf 2010
- Business Intelligence Road Map,商业智能学习路线图
- 《C现代方法》第四章:表达式
- IPv6 Ready Logo Phase-1
- 18分钟计划管理你一天
- hibernate 在 web server 启动的时候 无法自动生成 table 表
- 《我是一只IT小小鸟》推荐序