美文网首页
Learning note 1

Learning note 1

作者: 石头剪刀布_700f | 来源:发表于2019-03-21 10:19 被阅读0次

    如何评价代码的质量?

    1. 性能
    2. 可读性
    3. 拓展性

    如何分析代码的时间复杂度和空间复杂度?(The most important)

    什么是数据结构、什么是算法?

    • 数据结构:数据的存储结构
    • 算法:操纵数据的方法

    面对不同量级的数据,需要选择相应的数据结构。举一个简单的例子,当我们只需要管理10本书的时候,我们根本不需要用什么方法,很快就能找到你要找的书;当我们要管理100本书的时候,我们的桌子可能就放不下了,我们就需要一个书架(类似于数据结构),为了让我们更加高效的找到某一本书,我们还需要按照一定的规则对这些书籍进行排序(类似于算法)。当我们需要管理100W本书的时候,光书架已经不够了,我们需要一个巨大的仓库,需要许许多多的书架。为了能够高效的管理这些图书,我们需要把一个仓库分类成多个仓库,每个仓库又有许许多多的书架,书架又是按照一定的规则排序,这样我们就能快速的找到相应的图书。

    数据结构和算法的关系

    数据结构和算法是相辅相成的,不同的结构有着不同的特点,充分的发挥这些结构的特点可以帮助我们高效的解决很多问题。

    举一个现实中的例子:轮子都是设计成圆形,因为滚动摩擦力远远小于滑动摩擦力,由于圆形的这种特性,我们设计出轮子,帮助人们来运输货物,大大节省了重物在运输过程中消耗的体力,扩宽了人们运输的范围,也帮助完成超出人类水平的艰巨任务,如金字塔。

    数据结构和算法导图

    常见的数据结构

    1. 数组
    2. 链表
    3. 队列
    4. 哈希表
    5. 二叉树
    6. 跳表
    7. Trie树

    常用的算法

    1. 递归
    2. 排序
    3. 查找
    4. 最短路径
    5. 动态规划
    数据结构和算法导图.png

    常碰到的时间复杂度

    其中指数阶和阶乘阶都属于十分低效的复杂度量级,应该尽量避免。


    时间复杂度.png
    //这段代码的时间负责度就是log(n)
     i=1;
     while (i <= n)  {
       i = i * 2;
     }
    

    相关文章

      网友评论

          本文标题:Learning note 1

          本文链接:https://www.haomeiwen.com/subject/xwatvqtx.html