var data = [8, 3, 4, 1, 18, 22, 11, 3, 5, 6, 2, 1, 77]

quickSort(data, 0, data.length - 1)

console.log(data)

var index = binarySearch(data, 18);
console.log(index) function quickSort(data, left, right) { if(data.length < 2)
{
return;
}
var index = partition(data, left, right); if (left < index - 1) {
quickSort(data, left, index - 1);
} if (right > index) {
quickSort(data, index, right);
} } function partition(data, left, right) { var i = left;
var j = right; var pivot = data[Math.floor(left + (right - left) / 2)]; while (i <= j) { while (data[j] > pivot) {
j--;
} while (data[i] < pivot) {
i++;
} if (i <= j) {
var temp = data[i];
data[i] = data[j];
data[j] = temp;
i++;
j--;
} } return i;
} function binarySearch(data, target) { var left = 0;
var right = data.length - 1; while(left <= right)
{
var midIndex = Math.floor(left + (right - left) / 2); if(data[midIndex] < target)
{
left = midIndex + 1;
} if(data[midIndex] >= target)
{
right = midIndex - 1;
}
} return left; }

快速排序和二分查找(Javascript)的更多相关文章

  1. binarySearch二分查找——Javascript实现

    在很早之前,我就写过了一篇也关于二分法的相关博文:JavaScript快排与原生sort的测试.当时是用二分法进行快速排序,其实和这次思路大致相当.二分查找最重要的一个条件,就是需要将数组先按照从小到 ...

  2. 二分查找javascript

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. golang 快速排序及二分查找

    二分查找 func main() { arr := []int{0, 1, 2, 3, 4, 5, 6} fmt.Println(BinarySearch(arr, 5)) } func Binary ...

  4. C语言练习题1(关于快速排序,二分查找与运行时间)

    刚刚完成师兄给的一道题目: 随机生成10000位数,进行快速排序后,用二分查找法定位到某个要查询的数(键盘输入某个要查询的数),  结果输出查询的时间,以及是否查到 分享下自己的解题思路: 1,要懂得 ...

  5. 浅谈二分查找 JavaScript

    算法介绍 二分查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法.查找过程经历一下步骤: (1)从有序数组的中间的元素开始搜索,如果该元素正好是目标元素,则停止搜索并返回该元素的索引值,否则 ...

  6. 快速排序和二分查找(Java)

    import java.util.Arrays; public class Main { public static void main(String[] args) { int[] data = { ...

  7. 快速排序和二分查找(Go)

    package main import ( "fmt" "sync") var waitGroup sync.WaitGroup func main() { d ...

  8. javascript实现二分查找

    今天做了道笔试题,要求是实现二分查找,当然不难,想了一下,因为没有要求语言就用javascript实现了.当然,期间还是出来了一点问题. ok,上代码 /* * 稳定二分查找 * 作者:吴伟欣 * * ...

  9. javascript实现快速排序和二分法查找

    1.快速排序: 思路:找到数组中间的元素,把它单拎出来,然后从0开始判断数组中的元素比该基准元素大还是小,小的存左边,大的存右边,然后如此反复递归,得出结果. function quickSort(a ...

随机推荐

  1. postgresql 用 like 可以 复制结构包括主键约束

    create tabletablename ( like tablename INCLUDING INDEXES INCLUDING COMMENTS); PostgreSQL 动态表复制(CREAT ...

  2. python计算1~100的和,1~100奇数的和,1~100偶数的和,一条代码求1~100的和

    1.计算1~100的数之和----for循环实现1~100的和 sum1 = ,): sum1 = sum1 + i i += print(f"1-100之间的和是:{sum1}" ...

  3. python3的base64编解码

    使用python3的base64编解码实现字符串的简易加密解密 引言: 在一些项目中,接口的报文是通过base64加密传输的,所以在进行接口自动化时,需要对所传的参数进行base64编码,对拿到的响应 ...

  4. python网络爬虫(1)静态网页抓取

    获取响应内容: import requests r=requests.get('http://www.santostang.com/') print(r.encoding) print(r.statu ...

  5. Jquery复习(四)之text()、html()、val()

    三个简单实用的用于 DOM 操作的 jQuery 方法: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() - 设置或返回 ...

  6. webstorm 如何去掉下划线

    当前webstorm版本:2018.3.5 百度了也没找到解决办法,最终结合了和群友的给的位置,找到了修改地方,只能怪版本迭代太快了,要适应 右上角Effects点掉就可以了

  7. 2018.09.07 最新cocoapods安装流程

    这篇写在简书了,就不费力气搬了,给简书留一篇. https://www.jianshu.com/p/13bbbf804b71

  8. oracle获取年、月、日

    --获取年 select extract(year from date'2011-05-17') year from dual; --获取月 select extract(month from dat ...

  9. 9- 基于6U VPX的 XC7VX690T+C6678的双FMC接口雷达通信处理板 C6678板卡

    基于6U VPX的 XC7VX690T+C6678的双FMC接口雷达通信处理板   一.板卡概述 高性能VPX信号处理板基于标准6U VPX架构,提供两个标准FMC插槽,适用于电子对抗或雷达信号等领域 ...

  10. Linux学习之CentOS(二十六)--Linux磁盘管理:LVM逻辑卷的创建及使用

    在上一篇随笔里面 Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理,详细的讲解了Linux的动态磁盘管理LVM逻辑卷的基本概念以及LVM的工作原理, ...