前端常用算法

没错,作为一个菜鸟,我真的不认为前端需要用到算法。
我不是朝后段喊一声,什么都有了么???(黑人问号)
然而实际上,前端还是有一些常用算法的,而且有很多很简单的算法或者实现方法,我从未将其作为一个算法来理解,更不用说理解成前端算法。

排序算法

  1. 冒泡:复杂度O(n2)

    function bubbleSort(arr){
       var i = 0,
            j = 0;
       for(i=1; i" 从小到大排序
       // "<" 从大到小排序
       if(arr[j] > arr[j+1]){
           temp = arr[j];
           arr[j] = arr[j+1];
           arr[j+1] = temp;
         }
       }
       }
       console.log(arr);
       return arr;
    
     }
    
     (function main() {
        var arr = [3,0,9,100,3];
        arr = bubbleSort(arr);
     }());
    
  2. 快速排序:复杂度 O(n2) or O(nlog2n)

// 每次选择最左边的数作为基数

function quickSort(arr){
  if (arr.length<2) { return arr; }
  // 定义左指针
  var left=0;
  // 定义右指针
  var right=arr.length-1;
  //开启每一轮的排序
  while(left=arr[0] && left
  1. 有序数组合并

     function merge(left, right) {
       var result = [],
       il = 0,
       ir = 0;
    
       while (il < left.length && ir < right.length) {
         if (left[il] < right[ir]) {
           result.push(left[il++]);
         } else {
           result.push(right[ir++]);
         }
       }
       while(left[il]){
         result.push(left[il++]);
       }
       while(right[ir]){
         result.push(right[ir++]);
       }
       return result;
    }
    

字符处理

  1. 生成随机验证

     function bubbleSort(n){
       var str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
       var tmp = '';
       for(var i=0;i
  • charAt() 方法可返回指定位置的字符。

你可能感兴趣的:(前端常用算法)