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

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 = par…
在很早之前,我就写过了一篇也关于二分法的相关博文:JavaScript快排与原生sort的测试.当时是用二分法进行快速排序,其实和这次思路大致相当.二分查找最重要的一个条件,就是需要将数组先按照从小到大的顺序进行排序后,方可进行查找. 一起来想想大致的思路: 1. binarySearch函数需要接收的参数是:一个预先排序好的数组,一个需要查找的目标值,左边界和右边界. 2. 让数组的中值和目标值比较,若相等,则返回中值所在的序号,函数结束.若不相等,进行第三步 3. 不相等,则进行大小比较,若…
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript"> //二分查找要保证我们的数组是一个有序的. //思想是 //首先把数组的中间这个数找出,然后和你要查询的数比较 //① 你要查询…
二分查找 func main() { arr := []int{0, 1, 2, 3, 4, 5, 6} fmt.Println(BinarySearch(arr, 5)) } func BinarySearch(s []int, k int) int { lo, hi := 0, len(s)-1 for lo <= hi { m := (lo + hi) >> 1 if s[m] < k { lo = m + 1 } else if s[m] > k { hi = m -…
刚刚完成师兄给的一道题目: 随机生成10000位数,进行快速排序后,用二分查找法定位到某个要查询的数(键盘输入某个要查询的数),  结果输出查询的时间,以及是否查到 分享下自己的解题思路: 1,要懂得如何随机生成数 2,要了解快速排序以及二分法思想 3,要直到如何测试出程序运行时间 下面是自己写的代码,欢迎各位提出宝贵的意见以及见解,小生感激不尽 1 /* 2 本代码描述: 3 4 随机生成10000位数,进行快速排序后, 5 用二分查找法定位到某个要查询的数 6 (键盘输入某个要查询的数),…
算法介绍 二分查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法.查找过程经历一下步骤: (1)从有序数组的中间的元素开始搜索,如果该元素正好是目标元素,则停止搜索并返回该元素的索引值,否则进行下一步. (2)如果目标元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半区域查找,然后重复第一步的操作. (3)如果某一步数组为空,则表示找不到目标元素. 小demo代码参考: 非递归算法:function binary_search(arr,key)  var low=0,  hi…
import java.util.Arrays; public class Main { public static void main(String[] args) { int[] data = {2, 3, 5, 1, 4, 5, 2, 13, 51, 9, 10, 15, 17, 6, 21, 33, 44, 77, 22}; System.out.println(Arrays.toString(data)); quickSort(data, 0, data.length - 1); Sy…
package main import ( "fmt" "sync") var waitGroup sync.WaitGroup func main() { data := []int{2, 3, 5, 1, 4, 5, 2, 13, 51, 9, 10, 15, 17, 6, 21, 33, 44, 77, 22} fmt.Println(data) waitGroup.Add(1) go performQuickSort(data) waitGroup.Wait…
今天做了道笔试题,要求是实现二分查找,当然不难,想了一下,因为没有要求语言就用javascript实现了.当然,期间还是出来了一点问题. ok,上代码 /* * 稳定二分查找 * 作者:吴伟欣 * */ //备注:这是javascript语言的实现版本 function binarySearch(arr,num) { var start = 0,end = arr.length - 1,mid = 0; while(start<end) { mid = parseInt((start+end)/…
1.快速排序: 思路:找到数组中间的元素,把它单拎出来,然后从0开始判断数组中的元素比该基准元素大还是小,小的存左边,大的存右边,然后如此反复递归,得出结果. function quickSort(arr) { if (arr.length <= 1) { return arr; }//如果输入数组长度小于等于1,直接返回数组.这也是递归算法的终结部分 var base = Math.floor(arr.length / 2);//找到中间的基准元素位置 var baseEle = arr.sp…