冒泡排序 与二分法 -递归

var sum = 200;
for(var i= 0;i<6;i++)
{
    sum = parseInt(sum/2)-1
}
alert(sum);
 

例题2:公园里有一些桃子子,猴子每天吃掉一半以后扔掉一个,第6天的时候发现还剩下1个桃子,问开始有几个桃子?
      

var sum = 1;
for(var i = 0;i<6;i++)
{
    sum = (sum+1)*2;
}
alert(sum);
 

使用函数解决例题2

复制代码
 function ShuLiang(n)//用来返回第n天的数量
{
    if(n == 6)//已知第6天
    {
         return 1;//桃子数量为1
    }
    var sl = (ShuLiang(n+1)+1)*2;//第n天的桃子数量=(下一天的桃子数量+1)*2
    return sl;//return第n天的数量
}
alert(ShuLiang(0));    
复制代码
函数功能:给一个天数,返回该天数的桃子的数量。最主要的是下一天的桃子数量怎么求,函数实现过程是

           想要求第1天的桃子数量就需要2天桃子数量;

      想要求第2天的桃子数量就需要3天桃子数量;

    想要求第3天的桃子数量就需要4天桃子数量;

    想要求第4天的桃子数量就需要5天桃子数量;

    想要求第5天的桃子数量就需要6天桃子数量;

    而第6天的桃子的数量已经知道了,是1。进而5-4-3-2-1-0的数量的桃子就能用公示算出来了。

<script type="text/javascript">

//var attr = [1,8,26,4,15,3,7,42,9];

//对数组元素进行排序
//冒泡排序
/*8 6 4 5 3 7 2 9 1 8
8 6 5 4 7 3 9 2 1 7
8 6 5 7 4 9 3 2 1 6
8 6 7 5 9 4 3 2 1 5
8 7 6 9 5 4 3 2 1 4
8 7 9 6 5 4 3 2 1 3
8 9 7 6 5 4 3 2 1 2
9 8 7 6 5 4 3 2 1 1 */

//两个相邻的元素进行比较,满足条件元素互换
//进行比较的轮数是数组的长度减一

//定义一个交换使用的中间变量
//var zj = 0;

//控制比较的轮数
/*for(var i=0;i<attr.length-1;i++)
{
//控制每轮比较的次数
for(var j=0;j<attr.length-1-i;j++)
{
//如果下一个元素大于当前元素
if(attr[j]<attr[j+1])
{
//互换
zj = attr[j];
attr[j] = attr[j+1];
attr[j+1] = zj;

}
}
}*/

//alert(attr[0]);

//attr.sort();

//alert(attr[3]);


//在数组里面查找数据
var attr = [1,2,3,4,5,6,7,8,9];

//要查找的值
var v = 0;


//循环遍历的方式
/*var sy = -1;
for(var i=0;i<attr.length;i++)
{
if(attr[i]==v)
{
sy = i;
}
}

if(sy == -1)
{
alert("没找到数据");
}
else
{
alert("该数据在数组里面的索引为:"+sy);
}*/

//二分法查找数据

//最小索引
var minsy = 0;
var maxsy = attr.length-1;
var midsy ;

//循环比较
while(true)
{
//计算中间索引
midsy = parseInt((minsy+maxsy)/2);

//比较中间值和用户的值
//判断中间索引的值是否等于用户要查找的值
if(attr[midsy] == v)
{
//如果等于,就退出循环,找到了数据
break;
}

//判断是否只剩下两个数据
if(midsy == minsy)
{
//判断两个数据中的另外一个是否等于用户查找的值
if(attr[midsy+1]==v)
{
//找到了值,退出循环
midsy = midsy+1;
break;
}
else
{
//没有找到值,退出循环
midsy = -1;
break;
}
}
//用来改范围
if(attr[midsy]>v)
{
maxsy = midsy;
}
else
{
minsy = midsy;
}
}

alert(midsy);

</script>

原文地址:https://www.cnblogs.com/benpaodegegen/p/5885320.html