亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        javascript基本算法匯總

        字號:


            本文為大家分享了五個javascript算法,供大家參考,具體內(nèi)容如下
            1. 線性查找
            <!doctype html>
            <html lang="en">
            <head>
             <meta charset="UTF-8">
             <title>線性查找</title>
            </head>
            <body>
             <p>數(shù)組為:[2,4,6,23,53,545,65,3,24,5,3,6]</p>
             <p>輸入要查的值:<input type="text" id="serch" onchange="search_index(this.value)"><p>
             <p>這個值在數(shù)組的位置是:<span id="val"></span><p>
             <script>   
              //1.聲明查找函數(shù)
              //Arr為數(shù)組,x為要搜索的值
               function search(Arr,x){
                for(var i=0; i<Arr.length; i++){
                 if(Arr[i]==x){
                  return i; //返回x在數(shù)組中的位置;
                 }
                }
                return "不存在"; //循環(huán)結束還未發(fā)現(xiàn)的話 則返回"不存在";
               }
               //2.實例練習
               var arr=[2,4,6,23,53,545,65,3,24,5,3,6]; //聲明一個數(shù)組  
               function $$(id){
                return document.getElementById(id);
               }
              function search_index(value){
                var val=getX(arr,value)
                $$("val").innerHTML=val;
              }
               function getX(Arr,x){
                var count=0;
                console.log("循環(huán)執(zhí)行了:");
                for(var i=0; i<Arr.length;i++){
                 count++
                 console.log(count);//輸出循環(huán)執(zhí)行的次數(shù)
                 if(Arr[i]==x){
                  return i;
                 }
                }
                return "該值不存在";
               }  
             </script>
            </body>
            </html>
            2.二分查找
            <!doctype html>
            <html lang="en">
            <head>
             <meta charset="UTF-8">
             <title>二分查找溫故</title>
            </head>
            <body>
             <script>
             //二分查找值適用于已經(jīng)排好序的數(shù)組中
             //二分就是逢中查找 步驟較少
             var arr=[-13,2,4,6,8,12,34,35,45,56,57,88,110,234,239,342];//有序數(shù)組
             function binarySearch(arr,x){
              var low=0,high=arr.length-1;
              var count=0;
              while(low<=high){
               count++;
               console.log("這是第"+count+"次循環(huán)");
               var mid=Math.floor((low+high)/2);
               if(arr[mid]==x){
                console.log("x所在數(shù)組內(nèi)的引索是:"+mid);
                return mid;
               }
               if(arr[mid]<x){//如果要查找的值大于二分值則low=mid+1;
                low=mid+1;
                console.log("此時low的值是:"+low);
               }else{
                high=mid-1;//如果要查找的值小于二分值則high=mid-1;
                console.log("此時high的值是:"+high);
               }
              }
             }
            binarySearch(arr,45);
             </script>
            </body>
            </html>
            3.冒泡排序
            <!doctype html>
            <html lang="en">
            <head>
             <meta charset="UTF-8">
             <title>javascript冒泡排序</title>
            </head>
            <body>
             <script>
              var arr=new Array(34,-3,43,67,12,44,21,34,5,645,64,3,43,23,25);
              function bubbleSort(){
               var temp;//聲明一個緩存變量
               var count_outer=0;//外層循環(huán)計數(shù)
               var count_inner=0;//內(nèi)層循環(huán)計數(shù)
               for(var i=0; i<arr.length;i++){//第一層循環(huán)
                count_outer++;
                console.log("這是外層循環(huán)的第"+count_outer+"次");
                for(var j=arr.length;j>0;j--){//第二層循環(huán)
                 count_inner++;
                 console.log("...................這是內(nèi)層循環(huán)的第"+count_inner+"次");
                 if(arr[j-1]<arr[j-2]){//判斷后面一值如果小于前面一值
                  temp=arr[j-2];//那么將前面的值存放在temp里面
                  arr[j-2]=arr[j-1];//然后將后面一直放在前面值的位置
                  arr[j-1]=temp;//在把temp里的值放在后面那個位置
                 }
                 console.log(".......................................外層第"+count_outer+"次循環(huán)"+"內(nèi)層第"+count_inner+"次循環(huán)"+"后的數(shù)組排序結果是"+arr)
                }
               }
               return "最終排序后的數(shù)組是:["+arr+"]....一共循環(huán)了"+count_inner+"次";
              }
            console.log(bubbleSort()); //控制臺輸出
             </script>
            </body>
            </html>
            4.階乘
            <!doctype html>
            <html>
            <head>
             <meta charset="UTF-8">
             <title>階乘</title>
            </head>
            <body>
             <script>
             //created in 2014-04-30 
             //factorial function
              function factorial(num){
               if(num<=1){
                return 1;
               }else{
                return num*arguments.callee(num-1);//arguments 是一個類似數(shù)組的對象 包含函數(shù)中傳入的參數(shù) 他有一個屬性callee,它是一個指針 指向擁有這個arguments對象的函數(shù)也就是factorial
               }
              }
              var fac=factorial;//不帶括號的函數(shù)名是一個指向該函數(shù)的指針 所有fac現(xiàn)在也指向這個階乘函數(shù)
              alert(fac(3));//6
             </script>
            </body>
            </html>
            5.輸出奇偶數(shù)控制
            <html>
             <head>
              <title>只輸出奇數(shù)或者偶數(shù)項</title>
             </head>
             <body>
              <script>
              var ck = true;//全局變量
              function oddOreven(num) { //num為0或1 控制輸出結果 是奇數(shù)還是偶數(shù)
               for (var i = 0; i < 30; i++) {
                if (ck) {
                 ck = false; //如果ck為true 讓其等于false
                 alert(i + num);
                } else {
                 ck = true;
                }
               }
              }
              //調用
              oddOreven(0); //偶數(shù)
              oddOreven(1) //奇數(shù)
              </script>
             </body>
            </html>
            以上就是本文的全部內(nèi)容,希望能夠幫助大家更好的學習javascript程序設計。