日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js排序算法06——希尔排序

發(fā)布時(shí)間:2023/12/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js排序算法06——希尔排序 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

希爾排序本質(zhì)是一種插入排序,由一位叫希爾的大神提出得名,其基本思想是將數(shù)組分組進(jìn)行插入排序,每次消除不止一個(gè)逆序?qū)?#xff0c;這樣就提高了插入排序的效率。最后一步進(jìn)行一間隔的插入排序,此時(shí)數(shù)組已經(jīng)基本有序。代碼實(shí)現(xiàn)如下:

function shellSort(arr){if(!Array.isArray(arr)){return false; //類型判斷 } else{ var k = 1,len = arr.length,interval;while(Math.pow(2,k)<len){k++;}interval = Math.pow(2,k-1)-1; //定義間隔while(interval>0){for (var i = interval; i < len; i++) {var cup = arr[i];var j = i-interval;while(j>=0&&arr[j]>cup){arr[j+interval] = arr[j];j-=interval;}arr[j+interval] = cup;};interval = (interval+1)/2-1; }return arr;} }

增量用了Hibbart增量,Dk=2^k-1; 據(jù)猜想其平均時(shí)間復(fù)雜度Tavg = O(N5/4); 希爾排序不是穩(wěn)定排序,其排序效率與所用的增量序列有關(guān)。

轉(zhuǎn)載于:https://www.cnblogs.com/renbo/p/8432935.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的js排序算法06——希尔排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。