加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 建站 > 正文

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

发布时间:2019-03-29 23:18:56 所属栏目:建站 来源:同梦奇缘
导读:副标题#e# 写在前面 这是《学习JavaScript数据结构与算法》的最后一篇博客,也是在面试中常常会被问到的一部分内容:排序和搜索。在这篇博客之前,我每每看到排序头就是大的,心里想着类似冒泡排序,两层遍历啪啪啪就完事了,然后再也无心去深入研究排序相

代码:

  1. function mergeSort(arr) {  
  2.   const len = arr.length;  
  3.   if (len < 2) return arr; // 递归的终止条件  
  4.   const middle = Math.floor(len / 2); // 拆分左右数组  
  5.   const left = arr.slice(0, middle);  
  6.   const right = arr.slice(middle);  
  7.   return merge(mergeSort(left), mergeSort(right));  
  8. }  
  9. function merge(left, right) { // 将左右两侧比较后进行合并  
  10.   const ret = [];  
  11.   while (left.length && right.length) {  
  12.     if (left[0] > right[0]) {  
  13.       ret.push(right.shift());  
  14.     } else {  
  15.       ret.push(left.shift());  
  16.     }  
  17.   }  
  18.   while (left.length) {  
  19.     ret.push(left.shift());  
  20.   }  
  21.   while (right.length) {  
  22.     ret.push(right.shift());  
  23.   }  
  24.   return ret;  

2.5 快速排序

快速排序也许是最常用的排序算法了。它的复杂度为O(nlogn),,且它的性能通常比其他的复 杂度为O(nlogn)的排序算法要好。和归并排序一样,快速排序也使用分治的方法,将原始数组分为较小的数组

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读