js作业练习(二)

1.小 S,小L,小P,小R和小H 五个人排队站在一个出售’克隆可乐’的自动贩卖机前 ; 队伍中除了他们五个没有其他人 。 队形如下 :
小 S,小L,小P,小R,小H
队列的第一个人 (小S)买了一听可乐,喝下去后变成了两个小S!然后两个小S心满意足的站到了队伍的最后。此时队形变成了这样:
小 L,小P,小R,小H,小S,小S
然后队列中下一个人 (小L)也买了听可乐,喝下去后变成两个人,站到了队伍最后。以此类推。例如小P第三个喝了克隆可乐,之后队伍变成这个样子:
小 R,小H,小S,小S,小L,小L,小P,小P
请问第 n个喝这个饮料的人是谁?

<script>
  window.onload=function(){
   function aa(n){
   var arr=["S","L","P","R","H"];
   var temp,count=0;
   while(count!=n)
   {
    temp=arr.shift();
    count++;
    arr.push(temp);
    arr.push(temp);
   }
   return temp;
  }
  var result=document.getElementById("res");
   result.onclick=function(){
    var s=document.getElementById("enter").value;
    var m=parseInt(s);
//    document.write(s);
//    var m=aa(s);
    alert(aa(m));
   }
  
 }  
    
  </script>
 </head>
 <body>
   <input type="text" id="enter" placeholder="n=?">
   <input type="button" value="求解" id="res">
 </body>

2.请写出一个函数,功能是删除数组的指定下标元素。

<script>
   function bb(arr,n){
    if(n<arr.length)
    {
     for(var i=n;i<arr.length-1;i++){
      arr[i]=arr[i+1];}
      arr.pop();
     return arr;
     
    }
   }
   var arr1=["aqe","bfr","4","67","e"];
   alert(bb(arr1,2));
  </script>

3.学习 选择排序、插入排序、快速排序 算法`

<script>
//   1.选择排序
//   function selectSort(arr){
//    var temp=0;
//    for(var i=0;i<arr.length-1;i++){
//     var min=i;
//     for(var j=i+1;j<arr.length;j++)
//     {
//      if(arr[j]<arr[min])
//       min=j; 
//     }
//     if(min!=i)
//     {
//      temp=arr[i];
//      arr[i]=arr[min];
//      arr[min]=temp;
//     }
//    }
//    return arr;
//   }
//    var arr1=[7,2,1,8,6,9,0];
//    alert(selectSort(arr1));
//   2.插入排序
//  function insertSort(arr){
//   for (var i = 1; i < arr.length; i++){
//          var key = arr[i];
//          var j = i - 1;
//        while ( arr[j] > key) {
//           arr[j + 1] = arr[j];
//               j--;
//          }
//          arr[j + 1] = key;
//        }
//     return arr;
//    }
//      var arr1=[7,2,1,8,2,9,0];
//      alert(insertSort(arr1));
//   3.快速排序
  function quickSort(arr){
    if (arr.length <= 1) { return arr; }
    var centerIndex = Math.floor(arr.length / 2);
      var center = arr.splice(centerIndex, 1)[0];
//  console.log(pivot)
      var left = [];
     var right = [];
      for (var i = 0; i < arr.length; i++){
         if(arr[i] < center){
            left.push(arr[i]);
           }
      else{
           right.push(arr[i]);
        }
     }
    return quickSort(left).concat([center], quickSort(right));
  }
   var arr1=[7,2,1,8,2,9,0];
   alert(quickSort(arr1));
  </script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值