js数组,元素交换(请看清需求)
有整数数组,要求从小到大排序,但是一定,一定要用交换元素,并且必须以最小的数来交换开始。因为每步交换需要执行基本函数baseFunction(number1,number2)
function baseFunction(number1,number2){
alert(number1.toString() + "|" + number1.toString())
}
如:数组:22、6、56、34、87、8、45,
第一步就是交换6和22,变成6、22、56、34、87、8、45,执行baseFunction(6,22);
第二步就应该交换8和22,变成6、8、56、34、87、22、45,执行baseFunction(8,22);
第三步就应该交换22和56,变成6、8、22、34、87、56、45,执行baseFunction(22,56);
如果碰到最小数的就在应该出现的位置上就无须交换,
最后数组变成:6、8、22、34、45、56、87
急求,在线等,谢谢高手帮忙
我贴出未完成的代码:
<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="javascript" type="text/javascript">
function resetTable(tbobj,str){
numberarr = str.split(",");
var temp = 0;
for(var i = 0; i < numberarr.length; i++){
for(var j = i + 1; j < numberarr.length; j++){
if(numberarr[j] < numberarr[i]){
changeLie(tbobj,numberarr[j], numberarr[i]);
temp = numberarr[i];
numberarr[i] = numberarr[j];
numberarr[j] = temp;
}
}
}
}
//错就错在resetTable()用了冒泡排序(我不需要相邻替换!!!!),应该写一个方法满足我的需求,有大大能帮忙吗
function changeLie(tbobj,number1,number2){
var temp =new Array();
var arr=new Array();
myTR=tbobj.rows;
for(i=0;i<myTR.length;i++){
arr[i]=new Array();
temp[i]=new Array();
myTD=myTR[i].cells;
for(j=0;j<myTD.length;j++){
temp[i][j] = myTR[i].cells[number2].innerHTML;
myTR[i].cells[number2].innerHTML = myTR[i].cells[number1].innerHTML;
myTR[i].cells[number1].innerHTML = temp[i][j];
}
}
}
</script>
</head>
<body>
<table border="1px" id="tblTest">
<TR>
<TD>5</TD>
<TD>8</TD>
<TD>7</TD>
<TD>2</TD>
<TD>3</TD>
<TD>6</TD>
<TD>1</TD>
<TD>4</TD>
<TD>0</TD>
</TR>
<TR>
<TD>张三</TD>
<TD>天天小学</TD>
<TD>二(1)班</TD>
<TD>9</TD>
<TD>男</TD>
<TD>上海</TD>
<TD>喜欢笑</TD>
<TD>35KG</TD>
<TD>团员</TD>
</TR>
<TR>
<TD>李四</TD>
<TD>天兆中学</TD>
<TD>初一(2)班</TD>
<TD>14</TD>
<TD>女</TD>
<TD>上海</TD>
<TD>喜欢哭</TD>
<TD>50KG</TD>
<TD>党员</TD>
</TR>
</table>
<input type="button" value="change" onclick="resetTable(document.getElementById('tbltest'),'5,8,7,2,3,6,1,4,0');">
</body>
</html>