有整数数组,要求从小到大排序,但是一定,一定要用交换元素,并且必须以最小的数来交换开始。因为每步交换需要执行基本函数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>

解决方案 »

  1.   

      var arr =  [22,6,56,34,87,8,45];   
      for(var i=0;i<arr.length;i++){
      var iMin = arr[i];
      var index = i;
      for(var j=i;j<arr.length;j++){
    if(iMin>arr[j]){
    iMin = arr[j];
    index = j;
    }
      }
      arr.splice(index+1,0,arr[i]);
      arr.splice(index,1);
      arr.splice(i,1,iMin);   alert(arr.toString());
      }
      

  2.   

    没去修改你的代码,就是实现了你说的交换功能。通过下面的alert(),可以显示每次变化,应该就是你说的吧
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
     </HEAD> <BODY>
      <script>
      var arr =  [22,6,56,34,87,8,45];   
      for(var i=0;i<arr.length;i++){
      var iMin = arr[i];
      var index = i;
      for(var j=i;j<arr.length;j++){
    if(iMin>arr[j]){
    iMin = arr[j];
    index = j;
    }
      }
      arr.splice(index+1,0,arr[i]);
      arr.splice(index,1);
      arr.splice(i,1,iMin);
      alert(arr.toString());
      }  </script>
     </BODY>
    </HTML>
      

  3.   

    <!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){ 
      var td = tbobj.rows[0].cells;
      var arr = new Array();
      for(var i=0;i<td.length;i++){
    arr.push(td[i].innerHTML);
      }
      for(var i=0;i<arr.length;i++){ 
    var iMin = arr[i]; 
    var index = i; 
    for(var j=i;j <arr.length;j++){ 

    if(iMin>arr[j]){ 
    iMin = arr[j]; 
    index = j; 


    arr.splice(index,1,arr[i]); 
    arr.splice(i,1,iMin); 

    changeLie(tbobj,i,index); 
    }

    //错就错在resetTable()用了冒泡排序(我不需要相邻替换!!!!),应该写一个方法满足我的需求,有大大能帮忙吗 
    function changeLie(tbobj,number1,number2){ 
    alert("number1="+number1+"=   number2="+number2);
      var temp =new Array(); 
      var arr=new Array(); 
      myTR=tbobj.rows; 
      for(i=0;i <myTR.length;i++){ 
    var temp = myTR[i].cells[number2].innerHTML; 
        myTR[i].cells[number2].innerHTML = myTR[i].cells[number1].innerHTML; 
    myTR[i].cells[number1].innerHTML = temp;  
      } 
    }      
    </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'));"> 
    </body> 
    </html>