最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于JavaScript實現(xiàn)的插入排序算法分析

 更新時間:2017年04月14日 09:51:04   作者:布瑞澤的童話  
這篇文章主要介紹了基于JavaScript實現(xiàn)的插入排序算法,結合實例形式詳細分析了插入排序的原理、操作步驟及javascript相關實現(xiàn)技巧與注意事項,需要的朋友可以參考下

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

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

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

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

插入排序

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

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

下面我們通過js實現(xiàn)直接插入排序過程:

<!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++){//外循環(huán)選中元素
      temp=nums[outer];//選中元素
      inner=outer;
      while(inner>0&&(nums[inner-1]>=temp)){//內循環(huán)與選中元素對比
        nums[inner]=nums[inner-1];//如果選中元素前面的元素大,則前面的元素移到右側
        inner--;//依次比較
      }
      nums[inner]=temp;//直到找到正確的位置
    }
  }
  function show(nums){//顯示數(shù)組
    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>

排序過程如下:

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

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

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

相關文章

最新評論

桓台县| 句容市| 开鲁县| 南华县| 漳浦县| 宁德市| 永嘉县| 肇东市| 朔州市| 板桥市| 黄浦区| 西宁市| 赤水市| 赤水市| 大田县| 读书| 遂平县| 临安市| 梓潼县| 依安县| 泾阳县| 新密市| 巧家县| 顺义区| 宜黄县| 玉田县| 滦平县| 朝阳市| 通辽市| 昌乐县| 石狮市| 高青县| 多伦县| 杭锦旗| 尖扎县| 闵行区| 富蕴县| 乌鲁木齐市| 昌图县| 金昌市| 彭山县|