【interview】2020.07.11 数据结构和算法

数据结构:

参考:https://www.cnblogs.com/tianxiaxuange/tag/%E5%89%8D%E7%AB%AF%E7%AE%97%E6%B3%95/

十大经典排序算法 js 实现

领扣LeetCode 刷题 由简单到复杂

(1)什么是数据结构?

一组数据的存储结构。

js 常见数据结构:数组,对象

es6 新增数据结构:

  • Set

唯一性数据集合

  • Map

key value 的数据集合

(2)什么是算法?

操作数据的一组方法

常见算法有: 

  • 冒泡排序

最佳情况:T(n) = O(n),当数据已经是正序时。 最差情况:T(n) = O(n2),当数据是反序时。 平均情况:T(n) = O(n2)

  • 插入排序

最佳情况:T(n) = O(n),当数据已经是正序时。 最差情况:T(n) = O(n2),当数据是反序时。 平均情况:T(n) = O(n2)

最佳情况:T(n) = O(nlogn)。 最差情况:T(n) = O(n2)。 平均情况:T(n) = O(nlogn)

(3)时间复杂度

代码执行时间随数据规模增长的变化趋势

(4)空间复杂度

算法的存储空间与数据规模之间的增长关系

 

算法:

参考:https://www.jackpu.com/qian-duan-mian-shi-zhong-de-chang-jian-de-suan-fa-wen-ti/

1. 【递归】不可用 Javascript 控制循环的方法和关键字,最终生成 [3, 6, ...] 这种数组?

  • function gen3 (initNum, range) {
    ... ... }

    gem3(1, 10); // [1, 4, 7, 10]
    gem3(3, 20); // [3, 6, 9, 12. 15, 18]

注意1. 范围和初始值都使用参数控制

注意2. 每次加3

答案:

  • function gen3 (initNum, range) {
        if (initNum > range) {
            return [];
        }
        return [initNum].concat(gen3(initNum+3, range));
    }

 

posted @ 2020-07-11 16:38  耶梦加德  阅读(132)  评论(0编辑  收藏  举报