函数qSort(列表) {
//检查数组长度是否为0,如果是则无需排序,返回空数组。
if(列表.length==0) {
返回[];
}
//创建两个数组,一个存放小于基线值的元素,一个存放大于基线值的元素
var 左=[];
var 右=[];
//基值取自数组的第一个元素
var 数据透视=列表[0];
//遍历数组,根据与基准值的关系放入合适的数组中
for(var i=1;ips: 递归过程大概是这样的
灵魂画师二分法算法如果要查找的数据是有序,则二分查找算法比顺序查找算法效率更高。算法理解
二分查找算法的原理类似于猜谜游戏,即有人说“我正在想一个从1到100的数字”的游戏。每次我们回答一个数字时,对方都会说这个数字是否太高、太低或正确。
算法说明
选择中间值;
如果选择的值是要查找的值,则算法结束并返回;
如果要查找的值小于所选值,则返回步骤,在所选值左侧的子数组中查找。
如果要查找的值大于所选值,则返回步骤,在所选值右侧的子数组中查找。
算法实现
函数binSearch(arr,数据) {
//使用快速排序算法对传入数组进行排序
var arr=qSort(arr);
//设置最后一个元素的位置为上边界
var upperBound=arr.length-1;
//设置数组的第一个位置为下边界
var 下界=0;
while(lowerBound=upperBound) {
//中点
var mid=Math.floor((upperBound + lowerBound)/2);
//如果要查询的值大于中点元素,则将下边界设置为中点元素的下标加1,即选择数组的右半部分(不包括中点元素),然后向内查找
if(arr[mid] 数据) {
下界=中+1;
//如果要查询的值小于中点元素,同上
}else if(arr[mid] 数据) {
上限=中1;
//否则如果相等则返回
}别的{
中途返回;
}
}
返回-1;
}
var 测试=[1,2,3,4,5,6];
console.log(binSearch(测试,2)); //位置"1"的执行步骤:
执行步骤.png参考学习:
《数据结构与算法javascript描述》
《学习javascript数据结构与算法》
【JavaScript核心:深入解析数据结构与算法】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
我之前学的HTML和CSS都不够用了,现在想学点JS,要从基础开始学习数据结构和算法吗?
有13位网友表示赞同!
感觉掌握数据结构和算法对程序员真的很重要,写代码效率肯定能提高不少.
有10位网友表示赞同!
想要面试拿到理想的工作,必须得打好数据结构和算法的基底吧!
有16位网友表示赞同!
最近在学习JS, 数据结构和算法这块还是有点懵懂,不知道从哪入手比较好。
有10位网友表示赞同!
有没有推荐一些书籍或网课来学习JS的数据结构和算法?
有10位网友表示赞同!
数据结构和算法听起来好专业,对实际编程有那么大的帮助吗?
有10位网友表示赞同!
听说大厂面试都会考数据结构和算法,真是压力山大!
有12位网友表示赞同!
学习数据结构和算法感觉很有挑战,可持续的提升自己,很值得尝试。
有9位网友表示赞同!
JS的数据结构和算法都挺复杂的,学习起来还是需要一些耐心和毅力.
有8位网友表示赞同!
看了一些介绍,发现掌握这些知识真的能让我更好地理解代码逻辑。
有17位网友表示赞同!
准备要报一个JS的线上课程了,希望能够系统地学习数据结构和算法。
有9位网友表示赞同!
有的人说学完数据结构和算法就像开了挂一样,感觉好厉害的样子!
有6位网友表示赞同!
平时写代码的时候完全没有意识到这方面的知识很重要,以后还是要花时间加强学习.
有6位网友表示赞同!
觉得编程是一条长路,需要不断学习进步,数据结构和算法就是其中重要的部分。
有5位网友表示赞同!
希望我能像大师一样灵活运用数据结构和算法解决各种问题!
有18位网友表示赞同!
学习JS感觉很有意思,数据结构和算法可以帮助我写出更优秀的代码。
有12位网友表示赞同!
现在很多开源项目都用到这些知识,以后学习起来也能帮上忙.
有17位网友表示赞同!
这个话题让我对编程的未来更加充满期待!
有9位网友表示赞同!
学习数据结构和算法的同时,还可以加深对JS语言本身的理解。
有16位网友表示赞同!
感觉学习这方面知识是一个很好的投资,会对我未来的职业发展有很大的帮助!
有19位网友表示赞同!