问题在这里h=h/2我希望:当h=3时h/2=1但程序运行时:当h=3时h/2=1.5怎样使h的值为整数?且不要进位?

解决方案 »

  1.   

    <script>
    function shellsort(arr){
     var x, i, j, d;
     var n=arr.length;
     for(d = parseInt(n/2); d >= 1; d =parseInt(d/2))
     {
    for(i = d; i < n; i++){
    x=arr[i];
    for(j = i-d; j >= 0; j -= d){
    if(x < arr[j]) 
    arr[j+d] = arr[j];
    else 
    break;
    }
    arr[j+d] = x;
    }
     }
    }function testsort(){
     var a = new Array();
     for(var i=0; i<10; i++) a[i] = parseInt(Math.random()*100);
     alert(a);
     shellsort(a);
     alert(a);
    }
    </script>
    <button onclick="testsort()">test</button>
      

  2.   

    谢谢,我也会了!
    for(h=parseInt(n/2);h>0;h=parseInt(h/2))