zoukankan      html  css  js  c++  java
  • javascript算法汇总(持续更新中)

     1. 线性查找

     1 <!doctype html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>线性查找</title>
     6 </head>
     7 <body>
     8 
     9     <p>数组为:[2,4,6,23,53,545,65,3,24,5,3,6]</p>
    10     <p>输入要查的值:<input type="text" id="serch" onchange="search_index(this.value)"><p>
    11     <p>这个值在数组的位置是:<span id="val"></span><p>
    12 
    13 
    14 
    15     <script>            
    16         //1.声明查找函数
    17         //Arr为数组,x为要搜索的值
    18          function search(Arr,x){
    19              for(var i=0; i<Arr.length; i++){
    20                  if(Arr[i]==x){
    21                      return i;  //返回x在数组中的位置;
    22                  }
    23              }
    24              return "不存在"; //循环结束还未发现的话 则返回"不存在";
    25          }
    26       
    27          //2.实例练习
    28          var arr=[2,4,6,23,53,545,65,3,24,5,3,6];  //声明一个数组     
    29          function $$(id){
    30              return document.getElementById(id);
    31          }
    32 
    33         function search_index(value){
    34                var val=getX(arr,value)
    35                $$("val").innerHTML=val;
    36         }
    37 
    38             function getX(Arr,x){
    39                 var count=0;
    40                 console.log("循环执行了:");
    41                 for(var i=0; i<Arr.length;i++){
    42                   count++
    43                     console.log(count);//输出循环执行的次数
    44                     if(Arr[i]==x){
    45                         return i;
    46                     }
    47                 }
    48                 return "该值不存在";
    49             }        
    50                  
    51         
    52     </script>
    53 </body>
    54 </html>
    javascript算法-线性查找

     2.二分查找

     1 <!doctype html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>二分查找温故</title>
     6 </head>
     7 <body>
     8     
     9     <script>
    10     //二分查找值适用于已经排好序的数组中
    11     //二分就是逢中查找 步骤较少
    12     var arr=[-13,2,4,6,8,12,34,35,45,56,57,88,110,234,239,342];//有序数组
    13     
    14     function binarySearch(arr,x){
    15         var low=0,high=arr.length-1;
    16         var count=0;
    17         while(low<=high){
    18             count++;
    19             console.log("这是第"+count+"次循环");
    20             var mid=Math.floor((low+high)/2);
    21             if(arr[mid]==x){
    22                 console.log("x所在数组内的引索是:"+mid);
    23                 return mid;
    24             }
    25             if(arr[mid]<x){//如果要查找的值大于二分值则low=mid+1;
    26 
    27                 low=mid+1;
    28                 console.log("此时low的值是:"+low);
    29             }else{
    30                 high=mid-1;//如果要查找的值小于二分值则high=mid-1;
    31                 console.log("此时high的值是:"+high);
    32             }
    33 
    34         }
    35 
    36     }
    37 binarySearch(arr,45);
    38     </script>
    39 </body>
    40 </html>
    javascript算法-二分查找

    3.冒泡排序

     1 <!doctype html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>javascript冒泡排序</title>
     6 </head>
     7 <body>
     8     <script>
     9         var arr=new Array(34,-3,43,67,12,44,21,34,5,645,64,3,43,23,25);
    10 
    11         function bubbleSort(){
    12             var temp;//声明一个缓存变量
    13             var count_outer=0;//外层循环计数
    14             var count_inner=0;//内层循环计数
    15 
    16             for(var i=0; i<arr.length;i++){//第一层循环
    17                 count_outer++;
    18                 console.log("这是外层循环的第"+count_outer+"次");
    19                 for(var j=arr.length;j>0;j--){//第二层循环
    20                     count_inner++;
    21                     console.log("...................这是内层循环的第"+count_inner+"次");
    22                     if(arr[j-1]<arr[j-2]){//判断后面一值如果小于前面一值
    23                         temp=arr[j-2];//那么将前面的值存放在temp里面
    24                         arr[j-2]=arr[j-1];//然后将后面一直放在前面值的位置
    25                         arr[j-1]=temp;//在把temp里的值放在后面那个位置
    26                     }
    27                   console.log(".......................................外层第"+count_outer+"次循环"+"内层第"+count_inner+"次循环"+"后的数组排序结果是"+arr)
    28                 }
    29             }
    30             return "最终排序后的数组是:["+arr+"]....一共循环了"+count_inner+"次";
    31 
    32         }
    33         
    34 console.log(bubbleSort()); //控制台输出
    35 
    36     </script>
    37 </body>
    38 </html>
    javascript算法-冒泡排序

     4.阶乘

     1 <!doctype html>
     2 <html>
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>阶乘</title>
     6 </head>
     7 <body>
     8     <script>
     9     //created in 2014-04-30 
    10     //factorial function
    11 
    12         function factorial(num){
    13             if(num<=1){
    14                 return 1;
    15             }else{
    16                 return num*arguments.callee(num-1);//arguments 是一个类似数组的对象 包含函数中传入的参数 他有一个属性callee,它是一个指针 指向拥有这个arguments对象的函数也就是factorial
    17             }
    18         }
    19 
    20         var fac=factorial;//不带括号的函数名是一个指向该函数的指针 所有fac现在也指向这个阶乘函数
    21         alert(fac(3));//6
    22 
    23     </script>
    24 </body>
    25 </html>
    javascript算法-阶乘

     5.输出奇偶数控制

     1 <html>
     2     <head>
     3         <title>只输出奇数或者偶数项</title>
     4     </head>
     5     <body>
     6         <script>
     7         var ck = true;//全局变量
     8         function oddOreven(num) { //num为0或1 控制输出结果 是奇数还是偶数
     9             for (var i = 0; i < 30; i++) {
    10                 if (ck) {
    11                     ck = false; //如果ck为true 让其等于false
    12                     alert(i + num);
    13                 } else {
    14                     ck = true;
    15                 }
    16             }
    17         }
    18         //调用
    19         oddOreven(0); //偶数
    20         oddOreven(1)  //奇数
    21         </script>
    22     </body>
    23 </html>
    View Code

  • 相关阅读:
    目录和文件的权限设置方法
    logstash5 单实例多配置文件实现
    elasticsearch 使用快照方式迁移数据
    mysql 主库有数据通过锁库做主从
    mfs挂载
    web页面性能分析一些网址
    centos7 ffmpeg安装
    (转)在 Windows 上安装Rabbit MQ 指南
    (转)TeamCity配置笔记
    (转)分布式缓存GemFire架构介绍
  • 原文地址:https://www.cnblogs.com/leinov/p/3642573.html
Copyright © 2011-2022 走看看