js冒泡排序与二分法查找

冒泡排序

var attr=[1,5,7,6,3,9,2,8,4];

var zj=0;
//控制比较轮数
for(var i=0;i<attr.length-1;i++)
{
    //控制每轮的比较次数
    for(var l=0;l<attr.length-1-i;l++)
  {
          // 与下一个比较
    if(attr[l]<attr[l+1])
    {
                 //互换 
       zj=attr[l];
       attr[l]=attr[l+1];
       attr[l+1]=zj;
    }
  }
}   
alert(attr[0])
View Code

 

二分法查找

//必须先排好序

var attr=[1,2,3,4,5,6,7,8,9];

//要找的值

var v=6;

//取最大索引与最小索引的平均值与查询值比较,排除掉索引大的或索引小的,然后在剩下的索引里面再次判断,直到找到一致的。

var min=0;
var max=attr.length-1;
var zj;
while(true)
{
    //计算中间索引
    zj=parseInt((min+max)/2);
    //比较中间值与传入值
    if(attr[zj]==v)
    {
        break;
    }
     if(zj==min)
    {
        if(attr[zj+1]==v)
        {
            zj=zj+1;
            break;
        }
        else
        {
            zj-1;
            break;
        }
    }
    if(attr[zj]>v)
    {
        max=zj;
    }
    {
        min=zj;
    }
}
alert(zj);
View Code

 

posted @ 2016-09-19 14:20  哔哩哔哩干杯  阅读(246)  评论(0编辑  收藏  举报