使用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算法之二分查找法的实例详解
java算法之二分查找法的实例详解 原理 假定查找范围为一个有序数组(如升序排列),要从中查找某一元素,如果该元素在此数组中,则返回其索引,否则返回-1.通过数组长度可取出中间位置元素的索引,将其值与目标值比较,如果中间位置元素值大于目标值,则在左部分进行查找,如果中间位置值小于目标值,则在右部分进行查找,如此循环,直到结束.二分查找算法之所以快是因为它没有遍历数组的每个元素,而仅仅是查找部分元素就能找到目标或确定其不存在,当然前提是查找范围为有序数组. Java的简单实现 package me
-
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.
-
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)
随机推荐
- Java反射机制概念、原理与用法总结
- git revert和git reset的区别详解
- sql join on 用法
- jQuery晃动层特效实现方法
- JavaScript输出所选择起始与结束日期的方法
- 禁止运行logo1.exe病毒.reg
- 为什么在重写 equals方法的同时必须重写 hashcode方法
- 修改发贴的编辑功能
- Bootstrap CSS组件之输入框组
- JS高级调试技巧:捕获和分析 JavaScript Error详解
- 初学Python函数的笔记整理
- python查看FTP是否能连接成功的方法
- python实现绘制树枝简单示例
- asp之让Session永不过期
- 浅析Android Dialog中setContentView()方法
- FckEditor 配置手册中文教程详细说明
- Asp Split函数之使用多个分割符的方法
- JavaScript跨浏览器获取页面中相同class节点的方法
- 日常收集常用SQL查询语句大全
- 迅雷cid_store.dat 偷偷上传