使用javascipt---实现二分查找法
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script type="text/javascript">
//window.alert(Math.floor(5.7)); //向下取整 输出5
//二分查找法 数组必须是有序的
function binarySeach(arr,findval,leftIndex,rightIndex){
//找到中间的值
var midIndex=Math.floor((leftIndex+rightIndex)/2);
var midval=arr[midIndex];
//防止无穷递归
if(leftIndex>rightIndex){
//说明找不到
document.writeln("找不到");
return ;
}
//进行查找
if(midval>findval){
//在左边找
binarySeach(arr,findval,leftIndex,midIndex-1);
}else if(midval<findval){
//说明往右边找
binarySeach(arr,findval,midIndex+1,rightIndex);
}else{
//找到了 输出或者返回
document.writeln("找到了,下标为:"+midIndex);
return ;
}
}
var arr=[1,3,12,21,24,44,54,67];
binarySeach(arr,67,0,arr.length-1);
</script>
</head>
<body></body>
</html>
相关推荐
-
java数据结构之二分查找法 binarySearch的实例
java数据结构之二分查找法 binarySearch的实例 折半查找法,前提是已经排好序的数组才可查找 实例代码: public class BinarySearch { int[] bArr; public void setArr(int[] bArr){ this.bArr=bArr; } public static void main(String[] args) { int arrLength=16; int[] bArr=new int[arrLength]; System.out.
-
java算法之二分查找法的实例详解
java算法之二分查找法的实例详解 原理 假定查找范围为一个有序数组(如升序排列),要从中查找某一元素,如果该元素在此数组中,则返回其索引,否则返回-1.通过数组长度可取出中间位置元素的索引,将其值与目标值比较,如果中间位置元素值大于目标值,则在左部分进行查找,如果中间位置值小于目标值,则在右部分进行查找,如此循环,直到结束.二分查找算法之所以快是因为它没有遍历数组的每个元素,而仅仅是查找部分元素就能找到目标或确定其不存在,当然前提是查找范围为有序数组. Java的简单实现 package me
-
C经典算法之二分查找法
C经典算法之二分查找法 1.根据key查找所在数组的位置 #include <stdio.h> /* key = 9; 1 2 3 4 5 6 7 8 arr 3, 4, 5, 7, 9 , 11, 21, 23 low = 1 mid = (low + high)/2 = 4 high = 8; one arr[mid] = 7 < 9; so low = mid + 1 = 5; high = 8; mid = (low + high)/2 = 6 two arr[mid] = 11
-
使用javascipt---实现二分查找法
复制代码 代码如下: <html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8"><script type="text/javascript"> //window.alert(Math.floor(5.7)); //向下取整 输出5 //二分查找法 数组必须是有序的 function binarySeac
-
javascript实现二分查找法实现代码
一般二分都用到int[]型上.....在js中可能会更灵活的用到a-z上,或者用到拼音...或者用到...... 不过值得深思的一个问题是,如果为了实现对拼音之类的二分查找.而经过如下流程是否值得: 1.对拼音排序,貌似代码量不小吧. 2.然后再二分查找.这又需要识别拼音的大小,貌似也不算太小吧. 找到结果的速度快了,可是别人下你的js文件速度慢多了,呵呵,到底舍弃谁. 下面的代码甚至可以10亿条,一样会很快找到,可是用遍例的模式创建那个数组...所以还是别尝试了.只是给个思路,下次我再来发个j
-
浅谈选择、冒泡排序,二分查找法以及一些for循环的灵活运用
如下所示: import java.util.Arrays; //冒泡排序 public class Test { public static void main(String[] args) { int[] array = { 31, 22, 15, 77, 52, 32, 18, 25, 16, 7 }; // 冒泡 --> 两两比较 --> 提取出最大的数 在最后一位 //拿第一位和它后面的一位进行 两两比较 System.out.println(Arrays.toString(arra
-
C#使用二分查找法判断指定字符的方法
本文实例讲述了C#使用二分查找法判断指定字符的方法.分享给大家供大家参考,具体如下: private int sort_init(ref string[] chars, string str) //数组初始化 { string[] temp = str.Split(' '); //temp. chars = new string[temp.Count()]; int ndx = 0; int last_empty_positon = 0; foreach (string ch in temp)
-
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
本文实例讲述了JavaScript数据结构与算法之检索算法.分享给大家供大家参考,具体如下: javascript数据结构与算法---检索算法(二分查找法.计算重复次数) /*只需要查找元素是否存在数组,可以先将数组排序,再使用二分查找法*/ function qSort(arr){ if (arr.length == 0) { return []; } var left = [];//存储小于基准值 var right = [];//存储大于基准值 var pivot = arr[0]; fo
-
使用PHP实现二分查找算法代码分享
第一种方法: [二分查找要求]:1.必须采用顺序存储结构 2.必须按关键字大小有序排列. [优缺点]折半查找法的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表. [算法思想]首先,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功:否则利用中间位置记录将表分成前.后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表. 复制代码 代码如下: <?
-
php顺序查找和二分查找示例
复制代码 代码如下: <?php class search{ // 查找的源数组 private $array = array(1,2,3,5,7,6,4,8); /** * 顺序查找法 * @param $val 要查找的值 */ public function query_search($val) { foreach ($this->array as $k => $v) { if($v == $val) { echo '顺序查找成功!'; exit(0)
随机推荐
- Shell常见知识 方便想学习linux shell的彭玉
- Mysql存储过程和函数区别介绍
- JS之if语句对接事件动作逻辑(详解)
- PHP和正则表达式教程集合之二第1/2页
- linux下用tar命令将当前目录下文件按子目录压缩归档的实现
- IIS启用页面Gzip压缩实现说明
- CSS中position属性之fixed实现div居中
- php将字符串随机分割成不同长度数组的方法
- 关于静态页生成问题 突破form数量限制
- android studio2.3如何编译动态库的过程详解
- IE6下出现JavaScript未结束的字符串常量错误的解决方法
- php5中类的学习
- ajax智能提示+textbox动态生成下拉框示例代码
- ASP生成随机数 ASP生成不重复随机数
- 简单的Ruby中的Socket编程教程
- JavaScript实现同一页面内两个表单互相传值的方法
- java使用Hashtable过滤数组中重复值的方法
- C++静态成员变量和静态成员函数的使用方法总结
- C#模板方法模式(Template Method Pattern)实例教程
- 教你全面认识操作系统的svchost进程