算法设计:
- 从第一个元素开始,该元素可以认为已经被排序;
- 取出下一个元素,在已经排序的元素序列中从后向前扫描;
- 如果该元素(已排序)大于新元素,将该元素移到下一位置;
- 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
- 将新元素插入到该位置后;
- 重复步骤2~5。
代码:
<body>
<label id="lab"></label><br />
<input id="txt" type="text" /><br />
<input id="btn" type="button" value="确定" οnclick="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>