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;

      }

JavaScript 常用算法的更多相关文章

  1. JavaScript常用算法

    一.排序算法 1.Array.sort(function)(JavaScript原生排序算法)参数:比较函数(可选)若无参数,则按照首字母的ASCII码排序,比较函数的作用为确定排序 function ...

  2. javascript常用经典算法实例详解

    javascript常用经典算法实例详解 这篇文章主要介绍了javascript常用算法,结合实例形式较为详细的分析总结了JavaScript中常见的各种排序算法以及堆.栈.链表等数据结构的相关实现与 ...

  3. javascript中数组的常用算法深入分析

    Array数组是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array是前端必修的功课.本文将给大家详细介绍了javascri ...

  4. javascript常用排序算法实现

    毕业后,由于工作中很少需要自已去写一些排序,所以那些排序算法都忘得差不多了,不过排序是最基础的算法,还是不能落下啦,于是找了一些资料,然后用Javascript实现了一些常用的算法,具体代码如下: & ...

  5. javascript常用知识点集

    javascript常用知识点集 目录结构 一.jquery源码中常见知识点 二.javascript中原型链常见的知识点 三.常用的方法集知识点 一.jquery源码中常见的知识点 1.string ...

  6. Javascript常用的设计模式详解

    Javascript常用的设计模式详解 阅读目录 一:理解工厂模式 二:理解单体模式 三:理解模块模式 四:理解代理模式 五:理解职责链模式 六:命令模式的理解: 七:模板方法模式 八:理解javas ...

  7. GIS常用算法

    目录 1.常用算法 1.1.计算两经纬度点之间的距离 1.2.根据已知线段以及到起点距离,求目标点坐标 1.3.已知点.线段,求垂足 1.4.线段上距离目标点最近的点 1.5.点缓冲 1.6.点和面关 ...

  8. 总结Objective-c常用算法

          今天是星期天,想睡到10点起床,结果认为自己太奢侈了,不能这么做,于是把闹钟设置成了6:30:结果终于9:36醒了,起床,无缘无故迟了,好吧,就算太累了吧,周天就原谅自己一回.终于到了中午 ...

  9. JavaScript 常用功能总结

    小编吐血整理加上翻译,太辛苦了~求赞! 本文主要总结了JavaScript 常用功能总结,如一些常用的JS 对象,基本数据结构,功能函数等,还有一些常用的设计模式. 目录: 众所周知,JavaScri ...

随机推荐

  1. TCP 状态机

    TCP 状态机 TCP 协议的操作可以使用一个具有 11 种状态的有限状态机( Finite State Machine )来表示,图 3-12 描述了 TCP 的有限状态机,图中的圆角矩形表示状态, ...

  2. Javascript 事件对象(二)event事件

    Event事件: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" ...

  3. MATLAB与C/C++混合编程的一些总结

    [转载请注明出处]http://www.cnblogs.com/mashiqi 先上总结: 由于C/C++语言的函数输入输出参数的特点,可以将多个参数方便地传入一个函数中,但却不能方便地返回多个参数. ...

  4. 如何在 Linux 终端中知道你的公有 IP

    导读 在本文中我将会介绍在几种在 Linux 终端中查看你的公有 IP 地址的方法.这对普通用户来说并无意义,但 Linux 服务器(无GUI或者作为只能使用基本工具的用户登录时)会很有用.无论如何, ...

  5. iTunesConnect进行App转移

    最近有客户提出需求,要把发布的OEM应用转移到自己的账户下,查询未果,在网站上搜索,死活找不到对应的选项,这两天看之前提交的版本已经审核通过了,发现很容易的就找到了转移版本的地方. 仔细思量,应该是之 ...

  6. php部分---注册审核

    用户界面: 1.登录界面,用户填写相关信息 <form action="dengluchuli.php" method="post"> <di ...

  7. 数据库之mysql存储程序

    什么时候会用到存储过程 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度2.当对数据库进行复杂操作时 ...

  8. 【C】 03 - 数据类型

    程序说到底就是对数据的处理,所以首先要弄清楚需要处理哪些数据,计算机如何存储这些数据.C语言根据需要,抽象出了一些基本数据类型和衍生数据类型.这些可以满足大部分需求,更复杂的抽象数据类型亦可通过它们来 ...

  9. Spring 学习总结 使用静态工厂创建Bean

    创建Bean时,class属性必须指定,此时为静态工厂类. factory-method指定静态工厂方法名. 接口: public interface Being { public void test ...

  10. access数据库select查询top时无效的解决办法

    access数据库select查询top时有时无效,原因就是在使用Order by时,且排序的条件中数据有重复的. 比如:select top 10 * from table1 order by cd ...