顺序查找 折半查找 二叉树排序查找 (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 + "  ");
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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值