设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

JS数据结构与算法_排序和搜索算法(3)

发布时间:2019-03-29 16:06 所属栏目:21 来源:同梦奇缘
导读:核心:分治算法,以参考值为界限,将比它小的和大的值拆开 注意:每一次遍历筛选出比基准点小的值 代码: functionquickSort(arr,left=0,right=arr.length-1){ //left和right默认为数组首尾 if(leftright){ letpart

核心:分治算法,以参考值为界限,将比它小的和大的值拆开

注意:每一次遍历筛选出比基准点小的值

代码:

  1. function quickSort(arr, left = 0, right = arr.length - 1) {  
  2.   // left和right默认为数组首尾  
  3.   if (left < right) {  
  4.     let partitionpartitionIndex = partition(arr, left, right);  
  5.     quickSort(arr, left, partitionIndex - 1);  
  6.     quickSort(arr, partitionIndex + 1, right);  
  7.   }  
  8.   return arr;  
  9. }  
  10. function partition(arr, left, right) {  
  11.   let pivot = left;  
  12.   let index = left + 1; // 满足比较条件的依次放在分割点后  
  13.   for (let i = index; i <= right; i += 1) {  
  14.     if (arr[i] < arr[pivot]) {  
  15.       swap(arr, i, index);  
  16.       index += 1;  
  17.     }  
  18.   }  
  19.   swap(arr, index - 1, pivot); // 交换顺序时,以最后一位替换分隔项  
  20.   return index - 1;  

三、搜索算法

3.1 顺序搜索

顺序或线性搜索是最基本的搜索算法。它的机制是,将每一个数据结构中的元素和我们要找的元素做比较。顺序搜索是最低效的一种搜索算法。

  1. function findItem(item, arr) {  
  2.   for (let i = 0; i < arr.length; i += 1) {  
  3.     if (item === arr[i]) {  
  4.       return i;  
  5.     }  
  6.   }  
  7.   return -1;  

3.2 二分搜索

二分搜索要求被搜索的数据结构已排序。以下是该算法遵循的步骤:

  1.     选择数组的中间值
  2.     如果选中值是待搜索值,那么算法执行完毕
  3.     如果待搜索值比选中值要小,则返回步骤1在选中值左边的子数组中寻找
  4.     如果待搜索值比选中值要大,则返回步骤1在选中值右边的子数组中寻找 
  1. function binarySearch(item, arr) {  
  2.   arr = quickSort(arr); // 排序  
  3.   let low = 0;  
  4.   let high = arr.length - 1;  
  5.   let mid;  
  6.   while (low <= high) {  
  7.     min = Math.floor((low + high) / 2);  
  8.     if (arr[mid] < item) {  
  9.       low = mid + 1;  
  10.     } else if (arr[mid] > item) {  
  11.       high = mid - 1;  
  12.     } else {  
  13.       return mid;  
  14.     }  
  15.   }  
  16.   return -1;  

四、算法复杂度

4.1 理解大O表示法

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读