有好几个数字根据排序的就不对,找了好久就是找不出来,求助!!!!还没有分,请见谅..
代码:
$(function(){
var nReg=/^\-?[0-9]+$/;  
var s=$(".info");
var len;
$("#ok").click(function(){
var len=0;
var arr=new Array(10);
//收集数据
while(len<10)
{
var note=prompt("请输入"+(10-len)+"位数字","");
if(note.match(nReg)!=note)
{
s.html("请输入10次数字");
}else
{
arr[len]=note;
len++;
}
}
//冒泡
for(i=0;i<9;i++)//控制趟数
{
for(z=0;z<9-i;z++)
{
if(arr[z]>arr[z+1])
{
var temp=arr[z];
arr[z]=arr[z+1];
arr[z+1]=temp;
s.append("<br/>"+arr[z]+"-->>"+arr[z+1]);
}
}
}
for(abc=0;abc<arr.length;abc++)
{
s.append("<br/>"+arr[abc]);
}

});
})

解决方案 »

  1.   

    看样子你使用jQuery写的啊!你写的好像不是冒泡排序。for(i=0;i <9;i++)//控制趟数 

        for(z=0;z <9-i;z++) 
        { 
            if(arr[z]>arr[z+1]) 
            { 
                var temp=arr[z]; 
                arr[z]=arr[z+1]; 
                arr[z+1]=temp; 
                s.append(" <br/>"+arr[z]+"-->>"+arr[z+1]); 
           } 
        } 
    } 这段出现了问题!for(var i=9;i >=0;i--)//控制趟数 

        for(z=0;z < i;z++
        { 
            if(arr[z]>arr[i]) 
            { 
                var temp=arr[z]; 
                arr[z]=arr[i]; 
                arr[i]=temp; 
                s.append(" <br/>"+arr[z]+"-->>"+arr[i]); 
           } 
        } 
    }
    好像是这样,你自己试一下吧!
      

  2.   

    呵呵,有过需要什么帮助可以加我QQ:285207813,或者到我的百度空间:http://hi.baidu.com/ai_zxc   留言,一起交流javascript技术问题。
      

  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=utf-8" />
    <style type="text/css">
    body{
    font-size:14px;
    }
    </style>
    <title>冒泡排序</title>
    <script type="text/javascript">
    bobSort([1,2,8,4,9,6,88,21,47,1,3,7,5,3,6]);
    function bobSort(array) {
    var n = array.length;
    document.write("数组的长度为 " + n + "<br/>");
    document.write("排序之前为 [" + array.join(",") + "]<br/>");
    if(n < 2) {
    return;
    }
    var swap = false, temp;
    for(var i = 0; i < n - 1; i++) {
    swap = false;
    for(var j = 0; j < n - i - 1; j++) {
    if(array[j + 1] < array[j]) {
    temp = array[j + 1];
    array[j + 1] = array[j];
    array[j] = temp;
    swap = true;
    }
    }
    if(!swap) {
    break;
    }
    }
    document.write("排序之后为 [" + array.join(",") + "]<br/>");
    }
    </script>
    </head><body>
    </body>
    </html>
    ------------------------------------------------------------
    www.bleehome.cn