JavaScript数据结构和算法的检索算法示例[二分搜索法方法 重复次数的计算]
本文阐述了JavaScript数据结构的检索算法和算法。分享给大家参考,如下:
Javascript数据结构和算法-检索算法(二分搜索法方法,重复次数的计算)
/*您只需要找出元素是否有数组,就可以先对数组进行排序,然后使用二分搜索法方法*/函数qsort (arr) {if (arr。length==0){ return[];} var left=[];//store var right=[]小于参考值;//store var pivot=arr[0]大于参考值;for(var I=1;一、长度;I){ if(arr[I]pivot){ left . push(arr[I]);} else { right . push(arr[I]);} }返回qSort(左)。concat(pivot,qSort(右));//递归}/*二分搜索法方法,基本原理如下:*将数组的第一个位置设置为下边界(0)。将数组最后一个元素的位置设置为上边界(数组长度减1)。*如果下边界等于或小于上边界,请执行以下操作:* (1)。将中点设置为(上边界加下边界)除以2。* (2).如果中点元素小于查询值,则将下边界设置为中点元素的下标加1。* (3).如果中点元素大于查询值,则将上边界设置为中点元素的下标减1。*(4 */函数binSearch(arr,data){ var LowerBound=0;var upper bound=arr . length-1;while(lowerBound=upper bound){ var mid=math . floor((upper bound lowerBound)/2);if(arr[mid]数据){ lowerBound=mid 1;} else if(arr[mid]data){ upper bound=mid-1;} else { return mid} } return-1;}/* *计算重复次数*当binSearch()函数找到某个值时,如果数据集中有其他相同的值,该函数将定位在相似值附近。*换句话说,其他相同的值可能出现在找到的值的左侧或右侧。*如果可以在数据集中找到该值,则该函数将通过两个循环开始计算该值的出现次数。*第一个循环向下遍历数组,计算找到的值的出现次数,并在下一个值与要找到的值不匹配时停止计数。*第二个循环向上遍历数组,计算找到的值的出现次数,并在下一个值与要找到的值不匹配时停止计数。* */函数计数(arr,data){ var count=0;var position=binSearch(arr,data);if(位置-1){ count;for (var i=位置-1;I 0;- i) { if (arr[i]==数据){ count} else { break} } for (var i=位置1;一、长度;i) { if (arr[i]==数据){ count} else { break} } }返回计数;}var nums=[90,43,49,15,23,2,70,23,20,95,69,23,29,26];var list=qSort(nums);console.log(列表);var findnum=23Console.log('要搜索的数据是: ' find num);var retVal=binSearch(list,find num);if(retVal=0){ console . log(' find num '所在位置为:' retVal ');}else { console.log('不在数组中。);} console . log(find num的重复次数为' count(list,find num));使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun对上述代码进行测试,得到如下运行结果:
更多对JavaScript相关内容感兴趣的读者可以查看本网站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》和0103010
希望本文对JavaScript编程有所帮助。
版权声明:JavaScript数据结构和算法的检索算法示例[二分搜索法方法 重复次数的计算]是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。