zoukankan      html  css  js  c++  java
  • JS算法

    一 算法:
    1. 算法(Algorithm):是表示一个有限长列表的有效方法。算法应包含清晰定义的指令用于计算函数;掌握算法需要理解数据和结构之间的关系。
    2. 大O表示法:是指出算法运行时间的增速,让你能够比较操作数;
    3. 递归:是通过函数调用本身来实现的;递归满足的条件:
      • 基线条件(base case)就是递归的终止条件,无限递归的函数也没有意义。无限递归不等于无限循环,无限递归是导致栈溢出,而循环不会。
      • 递归条件(recursive case)就是满足方法调用本身的条件。
      • 动态规划:从底部开始解决问题,将所有小问题解决掉,然后合并成一个整体解决方案,从而解决掉整个大问题;递归:从顶部开始将问题分解,通过解决掉所有分解的小问题来解决整个问题;
    二 排序算法:
    1. 简单查找:按顺序查找;线性时间:O(n);
    2. 二分查找(折半查找):是一种算法,输入是一个有序的元素列表,如果要查找的元素包含在列表中,二分查找返回其位置,否则返回null(二分查找只在列表有序的时候有效)。对数时间:O(log(n))
    3. 选择排序:O(n*n)
    4. 快速排序:O(n*logn)
    5. 冒泡排序(Bubble sort):是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,O(n*n)。
    6. 插入排序:
    7. 归并排序:
    8. 计数排序:
     三 检索算法:
    1. 顺序查找:适用于元素随机排列的列表
    2. 二分查找:适用于元素已排序的列表。二分查找效率更高,但是必须在进行查找之前花费额外的时间将列表中的元素排序。
     
     
    推荐阅读:

    排序算法实现:https://www.cnblogs.com/roam/p/7423805.html

    一文搞懂动态规划:https://juejin.cn/post/6844904113889624077

    数据结构在JS中的应用:https://github.com/biaochenxuying/blog/issues/43;

  • 相关阅读:
    ES6解构赋值
    ES6兼容
    ES6关键字
    ES6模板字符串
    Bootstrap面试题
    Javascript中类型转换的情况以及结果
    事件
    ES6 解构赋值
    ES6 基础(let const)
    数组与字符串常用方法
  • 原文地址:https://www.cnblogs.com/terrymin/p/14167604.html
Copyright © 2011-2022 走看看