zoukankan      html  css  js  c++  java
  • JavaScript 常用算法

    1.排序算法

    (1)冒泡排序,冒泡排序其实就是通过比较相邻位置的元素大小,如果左边比右边大,就交换位置,继续比较,实际上就是每轮比较都得出一个最大值,然后通过多伦比较得出。

     

     function bubbleSort(arr){
          for(var i=1;i<arr.length;i++){
            for(var j=0;j<arr.length-i;j++){ var temp; if(arr[j]>arr[j+1]){
              temp=arr[j];
              arr[j]=arr[j+1];
              arr[j+1]=temp;
            }
          }
        }
        return arr;
      }

    (2)快速排序,我们选定一个数,然后比它小的都放在它左边,大于等于它的都放在它右边,那么这个时候对这个数来讲他的位置已经排到了正确的地方了,接下 来要做的就是在它的左右两边分别再进行类似操作。

        

     function quickSort(arr,l,r){
             var i,j,x;
             if(l<r){
                i=l;
                j=r;
                x=arr[i];
            while(i<j){
              while(i<j&&arr[j]>=x){
              j–;
            }
            if(i<j){
              arr[i]=arr[j];
            }
          while(i<j&&arr[i]<x){
              i++;
          }
          if(i<j){
            arr[j]=arr[i];
          }
        }
        arr[i]=x;
        //递归调用
        quickSort(arr,i+1,r);
        quickSort(arr,l,i-1);
        }
         return arr;
    
      }

          

    2.阶段乘法

         function factorialize(num) {
              var result = num;
              if (num < 0) { return -1; } else if (num === 0 || num === 1) { return 1; } else { while (num > 1) {
                num–;
                result *= num;
              }
            }
            return result;
          }

    3.回文字符串判断, 字符串忽略标点符号、大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文)

           

           function palindrome(str) {
    
                  // 删除字符串中不必要的字符
                var re = /[W_]/g;
                  // 将字符串变成小写字符
    
                var lowRegStr = str.toLowerCase().replace(re, ”);
                  // 如果字符串lowRegStr的length长度为0时,字符串即是palindrome
                  if (lowRegStr.length === 0) {
                      return true;
                    }
                // 如果字符串的第一个和最后一个字符不相同,那么字符串就不是palindrome
                if (lowRegStr[0] !== lowRegStr[lowRegStr.length – 1]) {
                    return false;
                  } else {
                    return palindrome(lowRegStr.slice(1, lowRegStr.length – 1));
                }
              }

    4.翻转字符串方法

          (1)

          function reverseString(str) {
              var tmp = “”;
              for (var i = str.length – 1; i >= 0; i–) {
                tmp += str.charAt(i);
              }
              return tmp;
            }

          (2)

           function reverseString(s) {
                var arr = s.split(”);
                var i = 0, j = arr.length – 1;
                while (i < j) {
                var t = arr[i];
                arr[i] = arr[j];
                arr[j] = t;
                i++;
                j–;
              }
            return arr.join(”);
          }

    5.数组中最大差值

          function getMaxProfit(arr) {

              var minPrice = arr[0];

              var maxProfit = 0;

              for (var i = 0; i < arr.length; i++) {

                  var currentPrice = arr[i];

                  minPrice = Math.min(minPrice, currentPrice);

                  var potentialProfit = currentPrice – minPrice;

                  maxProfit = Math.max(maxProfit, potentialProfit);

              }

            return maxProfit;

          }

    6.随机指定长度字符串

        function randomString(n) {
    
              var str = ‘abcdefghijklmnopqrstuvwxyz9876543210’;
              var tmp = ”;
              var l = str.length;
              for(var i = 0; i < n; i++) {
                tmp += str.charAt(Math.floor(Math.random() * l));
              }
              return tmp;
    
          }
  • 相关阅读:
    如何在局域网安装Redmine(转贴)
    介绍开源的项目管理系统-Redmine
    【转】ios开发证书,描述文件,bundle ID的关系
    【转】Spring+Mybatis+SpringMVC+Maven+MySql搭建实例
    【转】 Tomcat+redis+nginx配置
    【转】Java做服务器开发语言
    【转】程序员的五大陷阱
    一个简单的网页服务器
    【转】Eclipse中创建并运行Servlet项目
    【转】在Eclipse环境下配置Servlet开发环境
  • 原文地址:https://www.cnblogs.com/nmxs/p/6206707.html
Copyright © 2011-2022 走看看