javascript 折半查找字符在数组中的位置(有序列表)
2010-12-09 00:00
651 查看
/** * 折半查找字符在数组中的位置(有序列表) * @param array 被检索的数组 * @param x 要查找的字符 * @type int * @returns 字符在数组中的位置,没找到返回-1 */ function binarySearch(array,x){ var lowPoint=1; var higPoint=array.length; var returnValue=-1; var midPoint; var found=false; while ((lowPoint<=higPoint)&&(!found)){ midPoint=Math.ceil((lowPoint+higPoint)/2); //console.log(lowPoint+"===="+midPoint+"===="+higPoint); if(x>array[midPoint-1]){ lowPoint=midPoint+1; } else if(x<array[midPoint-1]){ higPoint= midPoint-1; } else if(x=array[midPoint-1]){ found=true; } } if(found){ returnValue=midPoint; } return returnValue; } /*var array2=[1,2,3,4,5,6,7,8,9,100,109];*/ var array2=['a','b','c','d','e','f','g']; console.log(binarySearch(array2,'c'));
相关文章推荐
- javascript 折半查找字符在数组中的位置(有序列表)
- 折半查找,把一个数放到一个有序数组的对应位置
- 查找某个字符在一个字符串中的位置,假设字符串中的字符是有序的,如“adfgikmnprs”中查找g的位置。(折半查找)
- 折半查找------在一个升序的有序数组中查找某个具体的数字
- (二分查找思想)从有序递增旋转数组45679123 中找到数字6的位置
- 这是一个我面试某公司的算法题目:对一个字符数组进行排序,根据给定的字符,大于它的,放在数组的左边,小于它的,放在数组的右边,且数组中的元素之间的相对位置要保持不变。
- JavaScript——将字符串转化成数组,并以列表的形式在文档中输出
- 剑指offer---连续子数组的最大和、第一个只出现一次的字符的位置
- JavaScript趣题:有序列表
- 100.字符串中奇数位置字符和ASCII为偶数的字符放在字符数组t中
- [LeetCode]—Search Insert Position 有序数组中找目标插入的位置
- 折半查找确定插入数组中元素的位置
- 用Arrays排列一字符数组,并查找一字符在其中位置。
- 有序数组中插入位置
- JavaScript字符和数组一些基本算法题
- php折半查找(数组必须为有序)
- JS 在数组插入字符的实现代码(可参考JavaScript splice() 方法)
- 一个有n个整数的递增有序数组。对它进行向左或向右循环移动若干次后,要求给出一个代码实现,尽可能快地从这个数组中寻找指定值所在的位置
- 有序数组用二分法查询位置
- 【算法】如何在有序的数组中找到一个数的位置(递归)