js排序算法06——希尔排序
生活随笔
收集整理的這篇文章主要介紹了
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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用户故事与敏捷方法pdf
- 下一篇: 【BZOJ2004】公交线路(动态规划,