国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

javascript基本算法匯總

2019-11-20 10:25:33
字體:
來源:轉載
供稿:網友

本文為大家分享了五個javascript算法,供大家參考,具體內容如下

 1. 線性查找

<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>線性查找</title></head><body> <p>數組為:[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>這個值在數組的位置是:<span id="val"></span><p> <script>     //1.聲明查找函數  //Arr為數組,x為要搜索的值   function search(Arr,x){    for(var i=0; i<Arr.length; i++){     if(Arr[i]==x){      return i; //返回x在數組中的位置;     }    }    return "不存在"; //循環結束還未發現的話 則返回"不存在";   }     //2.實例練習   var arr=[2,4,6,23,53,545,65,3,24,5,3,6]; //聲明一個數組     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("循環執行了:");    for(var i=0; i<Arr.length;i++){     count++     console.log(count);//輸出循環執行的次數     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> //二分查找值適用于已經排好序的數組中 //二分就是逢中查找 步驟較少 var arr=[-13,2,4,6,8,12,34,35,45,56,57,88,110,234,239,342];//有序數組  function binarySearch(arr,x){  var low=0,high=arr.length-1;  var count=0;  while(low<=high){   count++;   console.log("這是第"+count+"次循環");   var mid=Math.floor((low+high)/2);   if(arr[mid]==x){    console.log("x所在數組內的引索是:"+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;//外層循環計數   var count_inner=0;//內層循環計數   for(var i=0; i<arr.length;i++){//第一層循環    count_outer++;    console.log("這是外層循環的第"+count_outer+"次");    for(var j=arr.length;j>0;j--){//第二層循環     count_inner++;     console.log("...................這是內層循環的第"+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+"次循環"+"內層第"+count_inner+"次循環"+"后的數組排序結果是"+arr)    }   }   return "最終排序后的數組是:["+arr+"]....一共循環了"+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 是一個類似數組的對象 包含函數中傳入的參數 他有一個屬性callee,它是一個指針 指向擁有這個arguments對象的函數也就是factorial   }  }  var fac=factorial;//不帶括號的函數名是一個指向該函數的指針 所有fac現在也指向這個階乘函數  alert(fac(3));//6 </script></body></html>

5.輸出奇偶數控制

<html> <head>  <title>只輸出奇數或者偶數項</title> </head> <body>  <script>  var ck = true;//全局變量  function oddOreven(num) { //num為0或1 控制輸出結果 是奇數還是偶數   for (var i = 0; i < 30; i++) {    if (ck) {     ck = false; //如果ck為true 讓其等于false     alert(i + num);    } else {     ck = true;    }   }  }  //調用  oddOreven(0); //偶數  oddOreven(1) //奇數  </script> </body></html>

以上就是本文的全部內容,希望能夠幫助大家更好的學習javascript程序設計。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浮梁县| 长兴县| 广灵县| 寿光市| 理塘县| 区。| 东海县| 尖扎县| 西乌| 剑川县| 嘉定区| 溧阳市| 德庆县| 简阳市| 会同县| 新郑市| 青田县| 五峰| 乌苏市| 英山县| 耒阳市| 托克托县| 嘉定区| 永福县| 苏尼特右旗| 五大连池市| 陆良县| 吉木萨尔县| 灵丘县| 忻城县| 营山县| 错那县| 阳春市| 阳信县| 福州市| 寻甸| 文化| 雅江县| 临桂县| 防城港市| 蒙自县|