现在的位置: 首页 > 综合 > 正文

JavaScript排序算法之插入排序

2018年02月18日 ⁄ 综合 ⁄ 共 945字 ⁄ 字号 评论关闭

算法设计:

  1. 从第一个元素开始,该元素可以认为已经被排序;
  2. 取出下一个元素,在已经排序的元素序列中从后向前扫描;
  3. 如果该元素(已排序)大于新元素,将该元素移到下一位置;
  4. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
  5. 将新元素插入到该位置后;
  6. 重复步骤2~5。
代码:
<body>
    <label id="lab"></label><br />
    <input id="txt" type="text" /><br />
    <input id="btn" type="button" value="确定" onclick="BtnOnclick()"/>
</body>
<script src="js/jquery1.7.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
    var arrayObj = new Array();

    function BtnOnclick() {
        getArrObj();
        var value="";
        if (arrayObj.length > 0) {
            for (var i = 0; i < arrayObj.length; i++) {
                value = value + arrayObj[i] + ",";
            }
            value = value.substring(0, value.length - 1);
            $("#lab").text(value);
            $("#lab").val(value);
        }
    }

    function getArrObj() {
        var txt = $("#txt").val();
        var lab = $("#lab").val();
        var labInt = parseInt(txt);
        if (lab == "")
            arrayObj.push(labInt);
        else {
            insertionSort(labInt);
        }
    }

    function insertionSort(labInt) {
        var length = arrayObj.length;
        for (var i = length - 1; i >= 0; i--) {
            
            if (arrayObj[i] > labInt) {
                arrayObj[i + 1] = arrayObj[i];
            }
            else {
                arrayObj[i + 1] = labInt;
                break;
            }
        }
        return arrayObj;
    }
</script>

抱歉!评论已关闭.