手摸手带你实现归并排序快速排序插入排序选择排序
首先写个生成随机数和计算运行时间函数 function rand(n=10,t=0){ let arr=[] for(let i=0;i=r) return //判断条件可以优化 //划分左右两边 let mid=~~((l+r)/2) //递归划分 直到划分成l>=r时 gb(arr,l,mid) gb(arr,mid+1,r) //只有左边》右边时才交换数据 (从小到大排序时 if(arr[mid]>arr[mid+1]){ merge(arr,l,r,mid) } } function merge(arr,l,r,mid){ let newa=[] //左右指针 let i=l,j=mid+1 //复制一份新数组段 for(let g=l;g<=r;g++){ newa[g-l]=arr[g] } // console.log(newa,"////") //开始从左右边提取值 //左边小 提取arr[左] 左下标++ i //右边小 提取arr[右] 右下标++ j for(let k=l;k<=r;k++){ if(i>mid){ arr[k]=newa[j-l] j++ }else if(j>r){ arr[k]=newa[i-l] i++ }else if(newa[i-l]>newa[j-l]){ arr[k]=newa[j-l] j++ }else{ arr[k]=newa[i-l] i++ } } } // stime(gb,arr,0,n-1) // console.log(arr.slice(n-10,n)) //n=100 0ms //n=1000 4ms //n=10000 12ms //n=100000 54ms //向上归并排序 function gb2(arr,n){ for(let s=1;s<=n;s+=s){ for(let i=0;i+sarr[i+s]){ merge(arr,i,Math.min(i+2*s-1,n-1),i+s-1) } } } } stime(gb2,arr,n) console.log(arr.slice(n-10,n)) //n=100 1ms //n=1000 3ms //n=10000 19ms //n=100000 71ms2、快速排序let {rand,stime} =require ("./fun"); let n=100000 let arr=rand(n) function kuai(arr,l,r){ if(l>=r) return let t=qs(arr,l,r) kuai(arr,l,t) kuai(arr,t+1,r) } function qs(arr,l,r){ let v=arr[l] let i=l for(let j=l+1;jarr[j]){ [arr[i+1],arr[j]]=[arr[j],arr[i+1]] i++ } } [arr[l],arr[i]]=[arr[i],arr[l]] return i } stime(kuai,arr,0,n) console.log(arr.slice(n-10,n)) //n=100 0ms //n=1000 11ms //n=10000 28ms //n=100000 43ms3、选择排序let {rand,stime} =require ("./fun"); let n=100000 let arr=rand(n) function xz(arr,n){ for(let i=0;iarr[j]){ [arr[i],arr[j]]=[arr[j],arr[i]] } } } console.log(arr.slice(0,10)) } stime(xz,arr,100000) //n=100 --12ms //n=1000 --21ms //n=10000 --318ms //n=100000 --27651ms4、插入排序 let {rand,stime} =require ("./fun"); let n=100000 let arr=rand(n) function cr(arr,n){ for(let i=1;i0&&arr[j]0&&arr[j]0&&tem
如何读懂比特币?简单地说,比特币就是一种虚拟货币,但是想了解比特币,咱得先了解它是怎么来的。Part1比特币怎么来的?比如说村子里有个超级大的账房,里面的账本比星星还多。所有账本每10分钟必须更新
华为宣布将于6月2日举办鸿蒙系统发布会,正式登上手机在望新京报贝壳财经讯(记者许诺)5月25日,华为鸿蒙系统官方微博HarmonyOS发布的一段视频显示,计划在6月2日晚上8点正式举办鸿蒙操作系统及华为全场景新品发布会。结合此前消息,该
马斯克的韭菜收割之旅如需公益法律服务,欢迎评论留言或私信,或关注微信公众号律新帮前段时间特斯拉汽车因为刹车系统频上热搜,而最近CEO马斯克再次登上热搜,这位特斯拉背后的钢铁侠再次有了新的称号起因是马斯
再见EMUI,华为鸿蒙系统6月2日正式发布文电脑手机那些事儿原创文章,请勿转载,违者必究华为鸿蒙系统(HarmonyOS)的公测已经进行到了第二批,已经有越来越多的网友通过参与公测的方式率先体验了鸿蒙2。0系统,总体来说满
除了五菱原来3万还能有这么多新能源代步车可以选择你会不会买一辆新能源代步车呢?听到这个问题有的朋友可能会摇头,毕竟又便宜又是代步的,很多人会想联想到老年代步车这种玩意。但实际上,新能源代步车跟老年代步车还是有很大差别的,新能源代
解读关于打击比特币挖矿和交易行为政策昨天3月21日晚上10点许,国务院金融发展委员会研究部署下一阶段的金融领域的重点工作,很多朋友让我解读一下,其实很多人关注的是第二条,要坚决防控金融风险,打击比特币挖矿和交易行为,
小米11Pro的续航亮眼,得到雷军的高度评价,拿下所有旗舰前三对于小米11Pro你还有没有印象,提起这款手机,虽然小米11超大杯的亮相遮盖了一点光芒,但却并没有阻挡它强悍配置的闪光点,此外就在前些天,雷军就爆出了这款手机在体验上的表现,单是续
3岁孩童也有购物自主权玩具电商推出购物新功能美国纽约玩具商CAMP,为了提升玩具销量,近期将于自家购物网站推出新功能,允许3岁以上孩童在不受家长监督下,可以自行挑选产品以及结帐。据外媒华盛顿日报报道,玩具商CAMP将提供3岁
1500以下买这几款真香机就对了小编昨天给大家推荐了几款,1000元左右的真香性价比机型。反响非常不错。今天小编盖来给大家推荐几款1500以下1000以上的真香机,供大家参考和选择。realmeQ3(5G)这是r
华为没了台积电不行?两大芯片巨头奋起直追,原材料优势开始突显在整个科技领域,芯片可以说起着举足轻重的作用。一块小小的芯片,看上去只有指甲盖大小,但是其内部可能包含着上亿个晶体管线路,,芯片断供能让一个企业甚至一个行业直接停摆。但是芯片的研发
华为余承东公开发声,致歉还是卖惨?本文原创,请勿抄袭和搬运,违者必究华为手机市场大变局智能手机销售是华为的重点业务之一,也是华为面向消费者主要的产品。过去十几年,华为从低端贴牌机到如今的高端旗舰机型,又通过自研5G