zoukankan      html  css  js  c++  java
  • 前端常见算法整理

    1.回文数

    function isPalindromic(str){
      return str == str.spilt("").reverse().join("");
    }

    2.数组去重

    function unique(arr){
        var tempArr = [];
        for(var i = 0; i < arr.length; i++;){
            if(tempArr.indexOf(arr[i]) == -1){
                tempArr.push(arr[i]);
            }
        }      
        return tempArr;  
    }

    3.字符串中出现最多次数的字符和次数

     1 function maxCount(str){
     2         var obj = {};
     3         for(var i = 0; i < str.length; i++){
     4             var char = str.charAt(i);
     5             if(!obj[char]){
     6                 obj[char] =1;
     7             }else{
     8                 obj[char]++;
     9             }
    10         }
    11         console.log(obj)
    12         var max = 0;
    13         for(var key in obj){
    14             if(max < obj[key]){
    15                 max = obj[key];
    16                 console.log("出现最多字符是:" + key)
    17                 console.log("出现的次数:" + max)
    18             }
    19         }
    20     }

    4.冒泡排序

     1 function bubbleSort(arr){
     2     for(var i = 0; i< arr.length; i++){
     3         for(var j = i + 1; j < arr.length; j++){
     4             if(arr[i] > arr[j]){
     5                 var temp = arr[i];
     6                 arr[i] = arr[j];
     7                 arr[j] = temp;
     8             }
     9         }
    10     }
    11     return arr;
    12 }

    5.不利用中间变量交互两个

    function swap(a,b){
        b = b - a;
        a = a + b;//此时a=b
        b = a - b;
        return [a,b];
    }

    6.斐波那契数组

     1     function fibonacci(n){
     2         var fibArr = [];
     3         var i = 0;
     4         while(i<n){
     5             if(i<=1){
     6                 fibArr.push(i);
     7             }else{
     8                 fibArr.push(fibArr[i-1] + fibArr[i-2]);
     9             }
    10             i++;
    11         }
    12         return fibArr;
    13     }

    7.生成随机长度字符串

     1 function randomStr(len) {  
     2   var str = 'abcdefghijklmnopqrstuvwxyz9876543210';
     3   var tmp = '',
     4       i = 0,
     5       l = str.length;
     6   for (i = 0; i < n; i++) {
     7     tmp += str.charAt(Math.floor(Math.random() * l));
     8   }
     9   return tmp;
    10 }

    还有一些其他算法,先总结到这

    11月1日

    今天又看到了快速排序,写下来:

     1 function quickSort(arr){
     2     if(arr.length == 0){
     3         return [];
     4     }
     5     var left = [];
     6     var right = [];
     7     var temp = arr[0];
     8     for(var i = 1,len = arr.length; i < len; i++){
     9         if(arr[i] < temp){
    10             left.push(arr[i]);
    11         }else{
    12             right.push(arr[i]);
    13         }
    14     }
    15     return quickSort(left).concat(temp,quickSort(right))
    16 }

    思路就是分成左边数组和右边数组,把第一个拿出来作为参考,剩下的元素比第一个小的就放到左边数组,比第一个元素大的就放到右边数组,然后再对左右两边数组进行递归,最后合并(concat)这些数组。

  • 相关阅读:
    1024X768大图 (Wallpaper)
    (Mike Lynch)Application of linear weight neural networks to recognition of hand print characters
    瞬间模糊搜索1000万基本句型的语言算法
    单核与双核的竞争 INTEL P4 670对抗820
    FlashFTP工具的自动缓存服务器目录的功能
    LDAP over SSL (LDAPS) Certificate
    Restart the domain controller in Directory Services Restore Mode Remotely
    How do I install Active Directory on my Windows Server 2003 server?
    指针与指针变量(转)
    How to enable LDAP over SSL with a thirdparty certification authority
  • 原文地址:https://www.cnblogs.com/xuejiangjun/p/6016690.html
Copyright © 2011-2022 走看看