算法设计:
- 从第一个元素开始,该元素可以认为已经被排序;
- 取出下一个元素,在已经排序的元素序列中从后向前扫描;
- 如果该元素(已排序)大于新元素,将该元素移到下一位置;
- 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
- 将新元素插入到该位置后;
- 重复步骤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>