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

首頁 > 編程 > JavaScript > 正文

基于JavaScript實現的插入排序算法分析

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

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

根據排序過程中使用的存儲器不同,可以將排序方法分為兩大類:內部排序外部排序

內部排序是指待排序記錄存放在計算機隨機存儲器中進行的排序過程外部排序指的是待排序的記錄數量很大,以致內存一次不能容納全部記錄,在排序過程中尚需對外存進行訪問的排序過程

下面介紹幾種常見的內部排序方式:

插入排序

插入排序是一種最簡單的排序方法,它的基本操作是將一個記錄插入已排好序的有序表中,從而得到一個新的、記錄數加1的有序表。

插入排序有兩個循環,外循環將數組元素挨個移動,而內循環則對外循環中選定的元素及它后面的那個元素比較。如果外循環中選中元素小,那么數組元素會向右移動,為內循環中的這個元素騰出位置。

下面我們通過js實現直接插入排序過程:

<!DOCTYPE html><html>  <head>    <meta charset="utf-8">    <title>JavaScript插入排序</title>  </head>  <body><script type="text/javascript">  function insertSort(nums){//插入排序    var temp,      inner;    for(var outer=1;outer<nums.length;outer++){//外循環選中元素      temp=nums[outer];//選中元素      inner=outer;      while(inner>0&&(nums[inner-1]>=temp)){//內循環與選中元素對比        nums[inner]=nums[inner-1];//如果選中元素前面的元素大,則前面的元素移到右側        inner--;//依次比較      }      nums[inner]=temp;//直到找到正確的位置    }  }  function show(nums){//顯示數組    for(var i=0;i<nums.length;i++){      document.write(nums[i]+' ');    }    document.write('<br>');  }  var nums=[6,10,0,6,5,8,7,4,2,7];  show(nums);//6 10 0 6 5 8 7 4 2 7  insertSort(nums);  show(nums);//0 2 4 5 6 6 7 7 8 10</script>  </body></html>

排序過程如下:

可以看到,插入排序的運行并非通過數據交換,而是通過將較大的數組元素移動到右側,為數組左側的較小元素騰出位置。其時間復雜度為O(n2)。

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 社会| 深圳市| 太谷县| 姜堰市| 龙南县| 无锡市| 子长县| 临江市| 建宁县| 平阴县| 京山县| 满城县| 格尔木市| 如东县| 射阳县| 绥德县| 靖安县| 丁青县| 额敏县| 隆德县| 方正县| 沅江市| 马鞍山市| 张家口市| 湖北省| 孙吴县| 永泰县| 克东县| 华池县| 浑源县| 宁强县| 莱芜市| 潮安县| 景洪市| 修文县| 常宁市| 屏边| 黄石市| 佳木斯市| 徐州市| 建瓯市|