javascript算法学习(直接插入排序)

  1、基本思想

   假设待排序的记录存放在数组R[1..n]中。初始时,R[1]自成1个有序区,无序区为R[2..n]。从i=2起直至i=n为止,依次将R[i]插入当前的有序区R[1..i-1]中,生成含n个记录的有序区。

  

复制代码 代码如下:

  <!doctype html>

  <html>

  <head><title>javascript直接插入排序</title>

  <meta charset = "utf-8" />

  </head>

  <body>

  <script>

  var arr = [];

  for(var i=0;i<20;++i)

  {

  arr.push(~~(Math.random()*20));

  }

  document.write(arr+"<br/>");

  Array.prototype.insertionSort = function()

  {

  var j;

  var value;

  for(var i=1;i<this.length;i++)

  {

  j=i;

  value = this[j];

  while(j>0 && this[j-1]>value)

  {

  this[j] = this[j-1];

  j--;

  }

  this[j] = value;

  }

  }

  arr.insertionSort();

  document.write(arr+"<br/>");

  </script>

  </body>

  </html>