前端常见算法整理

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 }

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

时间: 2024-10-15 15:27:09

前端常见算法整理的相关文章

前端常见算法JS实现

算法是程序的灵魂,一个优秀的前端工程师对算法也是要有所了解的. 排序算法 1. 冒泡排序 //冒泡排序 function bubbleSort(arr){ var i = j = 0; for(i=1;i<arr.length;i++){ for(j=0;j<=arr.length-i;j++){ var temp = 0; if(arr[j]>arr[j+1]){ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } 2.

常见数据结构与算法整理总结(上)

数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作.算法是为求解一个问题需要遵循的.被清楚指定的简单指令的集合.下面是自己整理的常用数据结构与算法相关内容,如有错误,欢迎指出. 为了便于描述,文中涉及到的代码部分都是用Java语言编写的,其实Java本身对常见的几种数据结构,线性表.栈.队列等都提供了较好的实现,就是我们经常用到的Java集合框架,有需要的可以阅读这篇文章.Java - 集合框架完全解析 一.线性表 1.数组实现 2.链表 二.栈与队列 三.树

常见数据结构与算法整理总结(下)

这篇文章是常见数据结构与算法整理总结的下篇,上一篇主要是对常见的数据结构进行集中总结,这篇主要是总结一些常见的算法相关内容,文章中如有错误,欢迎指出. 一.概述 二.查找算法 三.排序算法 四.其它算法 五.常见算法题 六.总结 一.概述 以前看到这样一句话,语言只是工具,算法才是程序设计的灵魂.的确,算法在计算机科学中的地位真的很重要,在很多大公司的笔试面试中,算法掌握程度的考察都占据了很大一部分.不管是为了面试还是自身编程能力的提升,花时间去研究常见的算法还是很有必要的.下面是自己对于算法这

常见数据结构与算法整理总结

转载:http://www.jianshu.com/p/42f81846c0fb?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io 一.概述 以前看到这样一句话,语言只是工具,算法才是程序设计的灵魂.的确,算法在计算机科学中的地位真的很重要,在很多大公司的笔试面试中,算法掌握程度的考察都占据了很大一部分.不管是为了面试还是自身编程能力的提升,花时间去研究常见的算法还是很有必要的.下面是自己对于算法这部分的学习总结. 算法

[Machine Learning] 机器学习常见算法分类汇总

声明:本篇博文根据http://www.ctocio.com/hotnews/15919.html整理,原作者张萌,尊重原创. 机器学习无疑是当前数据分析领域的一个热点内容.很多人在平时的工作中都或多或少会用到机器学习的算法.本文为您总结一下常见的机器学习算法,以供您在工作和学习中参考. 机器学习的算法很多.很多时候困惑人们都是,很多算法是一类算法,而有些算法又是从其他算法中延伸出来的.这里,我们从两个方面来给大家介绍,第一个方面是学习的方式,第二个方面是算法的分类. 博主根据原创基础上加入了遗

五类常见算法小记 (递归与分治,动态规划,贪心,回溯,分支界限法)

近日复习了一些算法知识,小记于此 递归与分治法 直接或间接地调用自身的算法称为递归算法. 递归是算法设计与分析中常用的一种技术,描述简单且易于理解. 分治法的设计思想是将一个规模为n难以解决的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同. 递归地解这些子问题,然后将各子问题的解合并得到原问题的解. 典型例子:Fibonacci数列,阶乘,Hanoi塔:二分法搜索.快速排序.合并排序. 动态规划法 动态规划过程是:根据当前(阶段)状态,采取相应的决策,引起状态的转移.如下图,一

前端工程师算法(一)

算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指定,算法代表着用系统的方法描述解决问题的策略机制.这个解释来源于百度,对于入门来说这个解释等于白说了,你的一脸懵逼我懂,大神略过. 说人话 算法 你需要了解的算法是什么? 开始了解算法就应该对程序有一些认识和理解了,其实我们所有的程序可以理解为算法加数据结构.撇开数据结构不谈,我们日常写的代码如if-else.for(...)等就是算法.在数学里加减乘除是算法,方程公式,几何公式,乃至高数也都是算法,而我们的if-else.for(..

五大常见算法策略——递归与分治策略

摘要:递归与分治策略是五大常见算法策略之一,分治策略的思想就是分而治之,即先将一个规模较大的大问题分解成若干个规模较小的小问题,再对这些小问题进行解决,得到的解,在将其组合起来得到最终的解.而分治与递归很多情况下都是一起结合使用的,能发挥出奇效(1+1>2),这篇文章我们将先从递归说起,再逐渐向分治过渡,主要讲解方式是通过9个例题来说明问题的,问题都是根据难度由简到难,由浅入深,对递归与分治能有个大概的了解雏形,当然最重要还是要做大量练习才能掌握. 1.递归 我们第一次接触递归一般都是在初学C语

前端排序算法总结;前端面试题2.0;JavaScript异步编程

1.前端 排序算法总结 排序算法可能是你学编程第一个学习的算法,还记得冒泡吗? 当然,排序和查找两类算法是面试的热门选项.如果你是一个会写快排的程序猿,面试官在比较你和一个连快排都不会写的人的时候,会优先选择你的.那么,前端需要会排序吗?答案是毋庸置疑的,必须会.现在的前端对计算机基础要求越来越高了,如果连排序这些算法都不会,那么发展前景就有限了.本篇将会总结一下,在前端的一些排序算法. https://segmentfault.com/a/11... 2.前端面试题 V2.0 详见: 这是一份