05月09, 2018

算法学习初探(02)-- 插入排序

      // 插入排序
      let arr = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1];

      let len = arr.length;
      // 直接从第二个开始查看,和第一个比较
      for(let i=1; i<len; i++)
      {
        // 如果当前数值比前一个数值小,则交换位置
        for(let j=i; j>0 && arr[j]<arr[j-1]; j--)
        {
          [ arr[j], arr[j-1] ] = [ arr[j-1], arr[j] ];
        }
      }

      console.log(arr);

优化之后的:

    let arr = [8,7,6,5,4,3];
    let len = arr.length;
    for(let i=1; i<len; i++)
    {
      let e = arr[i];
      let j;
      for(j=i; j>0 && arr[j-1] > e; j--)
      {
        arr[j] = arr[j-1];
      }
      arr[j] = e;
    }
    console.log(arr);

本文链接:http://www.laijianlou.top/post/algorithm-02.html

-- EOF --

Comments