1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 算法(二分查找 快速排序)

算法(二分查找 快速排序)

时间:2020-07-08 22:06:05

相关推荐

算法(二分查找 快速排序)

老夫又回来更了,这次就写全世界都会而我不会的算法吧

首先是快速排序了。快速排序分为三步

1、找基准,

2、排序,小三在左边房子(数组),大老婆在右边房子(数组)

3、大老婆小老婆出来谈谈,合并一下,都是一家人。

好了,知道这几步了那么开始写吧。

function fn(arr){if(arr.length<=1){return arr}var newArr = Math.floor((arr.length)/2);var endArr = arr.splice(newArr,1)[0];var left = [],right = [];for(var i = 0; i < arr.length; i++){if(arr[i]<endArr){left.push(arr[i]);} else {right.push(arr[i]);}}return fn(left).concat(endArr,fn(right))}

接下来就是二分查找,有一种游戏是0~100猜一个数字,比如猜65,你猜40然后获得提示是偏大还是偏小,最后往答案的正确方向走。

那么二分查找其实跟这样的是类似的,那么一起来开心的写代码吧

function twoPointLookup(arr,low,high,key){if(low > high){return -1}var num = parseInt((low + high) / 2);if(key == arr[num]){return num }else if(arr[num] > key){high = num - 1;return twoPointLookup(arr,low,high,key)} else if (arr[num] < key){low = num + 1return twoPointLookup(arr,low,high,key)}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。