Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
    <head><title>二元搜尋</title></head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body></body>
</html>
 
var datas=[3,93,86,81,73,69,45,39,27,18];
$().ready(function(){
    console.clear();
    quick_sort(datas,0,datas.length -1); //快速排序
    console.log(datas); 
    var n=parseInt(window.prompt("輸入要搜尋的值"));
    var left=0,right=datas.length-1,found=false;
    var middle=0,i=0;
    console.log("找"+n);
    while(left<=right && found===false){
        i++;
        middle=Math.floor((left+right)/2);
        console.log("第"+i+"回合:中「"+middle+"」,值:"+datas[middle]+",左:"+left+",右:"+right);
        if(datas[middle]==n){
            found=true;
            console.log("Index:"+middle+",是要找的數字"+n);
        }else{
            if(datas[middle]>n){
                right=middle-1;
            }else{
                left=middle+1;
            }
        }
    }
    if(left>right)console.log("找不到"+n);
    
});
function swap(A,i,j){
   var tmp = A[i];
   A[i] = A[j];
   A[j] = tmp;
}
        
 function quick_sort(A,p,r){
     if(p < r)
     {
        var q = partition(A,p,r);
         quick_sort(A, p, q-1);
         quick_sort(A, q+1, r);
     }
 }
function partition(A,p,r){
    var x = A[r];
    var i = p-1 ;
    for(var j = p; j <= r-1; j++)
    {
        if(A[j] <= x)
                {
                        i++;
                      swap(A,i,j);
                }
    }
    swap(A,i+1,r);
    return i+1;
}
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
yaoyao34pro
0viewers