国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

基于JavaScript實現的希爾排序算法分析

2019-11-19 16:49:39
字體:
來源:轉載
供稿:網友

本文實例講述了基于JavaScript實現的希爾排序算法。分享給大家供大家參考,具體如下:

通過對直接插入排序的分析,可知其時間復雜度為O(n2),但是,如果待排序序列為正序時,其時間復雜度可提高至O(n)。希爾排序正是對此進行改進的排序。希爾排序的核心理念與插入排序不同,它會首先比較距離較遠的元素,而非相鄰元素。通過定義一個間隔序列來表示在排序過程中進行比較的元素之間有多遠的間隔

下圖演示了希爾排序中間隔序列是如何運行的:

下面我們通過js來實現希爾排序,代碼如下:

<!DOCTYPE html><html><head><meta charset="utf-8"><title>JavaScript希爾排序</title></head><body><script type="text/javascript">  function shellSort(nums){//希爾排序    var gaps=[5,3,1];//定義間隔區間    for(var g=0;g<gaps.length;g++){//一個一個間隔值開始      for(var i=gaps[g];i<nums.length;i++){//以間隔值遍歷        var temp=nums[i];//選中元素        for(var j=i;j>=gaps[g]&&nums[j-gaps[g]]>temp;j-=gaps[g]){//如果前面一個大于后面一個          nums[j]=nums[j-gaps[g]];//后移        }        nums[j]=temp;//填補      }    }  }  function show(nums){//顯示數組    for(var i=0;i<nums.length;i++){      document.write(nums[i]+' ');    }    document.write('<br>');  }  var nums=[6,0,2,9,3,5,8,0,5,4];  show(nums);//6 0 2 9 3 5 8 0 5 4  shellSort(nums);//希爾排序  show(nums);//0 0 2 3 4 5 5 6 8 9</script></body></html>

其排序過程如下:

希爾排序根據間隔序列的選取不同,時間復雜度也不同,但是需要注意,應該使間隔序列中的值沒有除1以外的公因子,并且最后一個間隔值必須等于1。

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript數據結構與算法技巧總結》、《JavaScript數學運算用法總結》、《JavaScript排序算法總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript查找算法技巧總結》及《JavaScript錯誤與調試技巧總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新安县| 台北县| 温宿县| 喀喇沁旗| 五原县| 烟台市| 蒙山县| 城口县| 镇宁| 汾西县| 高邑县| 太原市| 安泽县| 霍邱县| 洛南县| 阳泉市| 阿城市| 永清县| 甘德县| 绵竹市| 嘉义市| 红河县| 陆良县| 眉山市| 措美县| 富源县| 亳州市| 宜黄县| 四子王旗| 崇信县| 潮安县| 葫芦岛市| 西青区| 宝兴县| 孟津县| 洛隆县| 华坪县| 西平县| 家居| 宁阳县| 鲁山县|