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

解决方案 »

  1.   


    <script language="JavaScript">
    <!--
    function baseFunction(number1,number2){ 
     alert(number1.toString() + "|" + number1.toString()) 
    }  var arr = [22,6,56,34,87,8,45];
    var temp = 0;
    for(var i = 0; i < arr.length; i++){
    for(var j = i + 1; j < arr.length; j++){
    if(arr[j] < arr[i]){
    temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
    }
    //baseFunction(arr[j], arr[i])
    }
    }
    alert(arr)
    //-->
    </script>
      

  2.   


    <script language="JavaScript">
    <!--
    function baseFunction(number1,number2){ 
     alert(number1.toString() + "|" + number2.toString()) //你的base方法有点小问题 改下
    }  var arr = [22,6,56,34,87,8,45];
    var temp = 0;
    for(var i = 0; i < arr.length; i++){
    for(var j = i + 1; j < arr.length; j++){
    if(arr[j] < arr[i]){
    baseFunction(arr[j], arr[i])
    temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
    }

    }
    }
    alert(arr)
    //-->
    </script>
      

  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>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>冒泡排序</title>
    <script type="text/javascript">
    var data = [22, 6, 56, 34, 87, 8, 45];function $(id){
    return document.getElementById(id);
    }
    function baseFunction(number1,number2){ 
        alert(number1.toString() + "|" + number2.toString());
    }function bubble(arr){
    var index = 0;
    for(var i=0; i<arr.length; i++){
    index = i;
    for(var j=i+1; j<arr.length; j++){
    if(arr[j] < arr[index]){
    index = j;
    }
    }
    if(index != i){
    tmp = arr[i];
    arr[i] = arr[index];
    arr[index] = tmp;
    baseFunction(arr[i], arr[index]);
    }
    }
    }window.onload = function(){
    ret = $("result");
    ret.innerHTML = "排序前:" + data + "<br/><br/>";
    bubble(data);
    ret.innerHTML += "排序后:" + data;
    };
    </script>
    </head><body>
    <div id="result">
    </div>
    </body>
    </html>
      

  4.   

    <!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>
      

  5.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
     </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;
    }
      }
      baseFunction(iMin,arr[i]);
      arr.splice(index,1,arr[i]);
      arr.splice(i,1,iMin);
      }
    function baseFunction(number1,number2){ 
       alert(number1.toString() + "|" + number2.toString());

      </script>
     </BODY>
    </HTML>