当前位置: 首页 > news >正文

国学大师网站谁做的建站宝盒怎么样

国学大师网站谁做的,建站宝盒怎么样,北京好的设计公司,怎么做旅店网站排序 排序:把某个乱序的数组变成升序或降序的数组 (这里用数组来做举例) 归并排序 该排序属于 分治 策略将一个问题分解为两个问题来计算,计算完成之后,就会得到子任务的解,这些解不是最终问题的解,还需要merge起来…

排序

  • 排序:把某个乱序的数组变成升序或降序的数组 (这里用数组来做举例)

归并排序

  • 该排序属于 分治 策略
  • 将一个问题分解为两个问题来计算,计算完成之后,就会得到子任务的解,这些解不是最终问题的解,还需要merge起来

算法实现

// 归并排序
Array.prototype.mergeSort = function() {// 递归自身拆分const rec = (arr) => {let len = arr.length;if(len === 1) {return arr;}let m = Math.floor(len / 2); // 取中值let l = arr.slice(0, mid);let r = arr.slice(0, len);let lo = rec(l); // 递归下去,就变成了一个数组成的数组,最终有序 o => orderlet ro = rec(r); // 同上// 上面递归完成,开始进行合并操作let res = []; // 最终合并后的数组let lol = lo.length; // 左边数组长度let lor = ro.length; // 右边数组长度while(lol || lor) {if(lol && lor) {res.push(lo[0] < ro[0] ? lo.shift() : ro.shift())} else if(lol) {res.push(lo.shift())} else if(rol) {res.push(ro.shift())}}return res;}// 获取递归结果const r = rec(this);// 将有序数组拷贝到this上r.forEach((n, i) => {this[i] = n;});
}let arr = [5,4,3,2,1]
arr.insertionSort()
console.log(arr); // [1, 2, 3, 4, 5]
  • 性能好,火狐的sort方法
  • 思路
    • 分:把数组分成2半,再递归地对子数组进行"分"操作,直到分成一个个单独的数
    • 合:把两个数合并为有序数组,再对有序数组进行合并,直到全部子数组,合并为一个完整数组
      • 两个单独的数组成的数组,也是两个有序数组,这两个数组里都只有1个数
      • 合这个操作,就是不断合并有序数组
    • 如何合并两个有序数组
      • 新建一个空数组res, 用于存放最终排序后的数组
      • 比较两个有序数组的头部,较小者出队并推出res中
      • 如果两个数组还有值,就重复第二步
      • 两个数组都空了,合并完成
  • 时间复杂度:O(nlogn)
    • 分:每次把数组分成两半,用时 O(logn), log函数用于求2^? = n, 自然要?=log_2 n, 即 O(logn)
      • 注意,凡是分的操作,基本都是logn
    • 合:O(n), 一个while循环体
http://www.yayakq.cn/news/919028/

相关文章:

  • 网站关键词推广做自然排名做网站要多长时间
  • 建设网站用外包模板可以上线吗防城港做网站
  • wordpress商城主题付费免费的seo优化工具
  • 建设部网站221号文件用腾讯云做购物网站视频
  • 网站开发中职教材vr成品网站源码
  • 网站推广中h1标签的重要性贵州省电力建设施工企业商会
  • 学院招生网站建设方案WordPress 推酷 主题
  • 多软件网站下载安装做网站发布信息
  • 本站由 今科云平台网站建设技术开发网站开发需要什么人
  • 网站维护一般多长时间百度搜索推广登录入口
  • 咸阳专业网站建设美声广告网站建设
  • 天津 网站制作做进口产品的网站好
  • wordpress 多站点主题wordpress占500内存
  • 广西住建局和城乡建设局网站从化建网站
  • 6成都网站建设工业设计招聘
  • 天津公司网站制作公司网站开发网页上传和网页发布
  • dede网站转移营销型网站建设目的和意义
  • 海口网站建设策划广东商城网站建设报价
  • 建设网站要什么时候开始张店做网站
  • 腾讯理财是什么样的做网站网页设计模板html代码百度云
  • 网站流量如何突破选课网站开发
  • 北京网络公司建站网站开发前端和后端用什么语言
  • 网站制作最新技术龙岗建设高端网站
  • 医疗网站优化怎么做免费网站正能量软件
  • dw一级网页制作教程百度 排名seo快速
  • 番禺做网站企业成都业务网络推广平台
  • wordpress建手机站教程黄石建设工程信息网
  • 如何做网站流量分析报表营业推广的概念
  • 北大荒建设集团有限公司网站网站推广策划思路
  • wordpress站外链接seo发外链工具