日期:2014-05-16  浏览次数:20401 次

顺序查找 折半查找 二叉树排序查找 (javascript 实现)
function search(array,x){     //顺序查找
var returnValue=NULL;
for (var j=0; j<array.length; j++){
   if(array[j]==x){        //查找成功
    returnValue=j;       //返回当前序号,并且不再进行查找
    break;
   }
}
return returnValue;          //返回查找的值
}



function binarySearch(array,x){         //折半查找算法
var returnValue=-1;                 //定义返回值,初始值为-1
var lowPoint=0;                       //定义查找指针
var higPoint=array.length-1;
var midPoint;
var found=false;                      //定义查找标识
while ((lowPoin<=higPoint)&&(!found)){
   midPiont=Math.cell((lowPoint+higPoint)/2); //进行折半查找
   if(x>array[midPoint]){
    lowPoint++;
   }else if (x=array[midPoint]){
    found=true;
   }else if (x<array[midPoint){
    higPonit--;
   }
}
if(found){         //如果找到,将找到的序号返回
   returnValue=midPoint;
}
return returnValue;
}

二叉树排序

 
function   node(data){
this.data=data;
var   Lnode;
var   Rnode;  
this.insert=function   insert(newData)
{
 
if(newData <this.data)
{
if(   this.Lnode==null)  
{
this.Lnode=new   node(newData);
}
else
{
this.Lnode.insert(newData);
}
}
else
{
if(this.Rnode==null)  
{
this.Rnode=new   node(newData);  
}
else
{
this.Rnode.insert(newData);
}
}
}
}


function   tree(){  
var   root   ;  
this.insertNode=function   insertNode(newData)
{    
if(this.root==null)
{
this.root=new   node(newData);
this.index=0;
}
  else
  {
this.root.insert(newData);  
}
}  

 
this.inOrderTraversal=function   inOrderTraversal()
{//中序便历
    this.inOrder(this.root);  
}
 
this.inOrder=function   inOrder(N)
{
if   (N!=null)
{
this.inOrder(N.Lnode);
//输出结果
document.write(N.data   +   "&nbsp; ");
this.inOrder(N.Rnode);  
}
}
 
}
 
  //test随便插入一些数字进来。
   
  var   T=new   tree()  
T.insertNode(   39);
T.insertNode(   69);
T.insertNode(   94);
T.insertNode(   47);
T.insertNode(   50);
T.insertNode(   72);
T.insertNode(   55);
T.insertNode(   41);
T.insertNode(   97);
T.insertNode(   73);
T.inOrderTraversal();