ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

给自己新的开始——如何学好算法和数据结构

2020-03-06 19:00:22  阅读:185  来源: 互联网

标签:学习 Tree 学好 链表 算法 广度 数据结构


2020.3.6

一直以来很害怕接触到这一块,但是越早准备以后找工作的时候就能多一些底气,毕竟只要下定决心开始,什么时候都不算晚。

这篇文章是听了一个比较系统性的关于学习的路线,特此记录。

大纲

  • 有哪些需要学习的算法与数据结构
  • 如何学好算法与数据结构-刷题的重要性
  • 算法与数据结构在工作中的应用
  • 总结-有哪些经典的解题模版

算法为什么离不开数据结构

  • 算法是解决问题的一系列操作集合
  • 数据结构能使得这些操作更加的高效
  • 同样的算法我们可以选择不同的数据结构,会带来不同效率的算法

 

有哪些需要学习的算法与数据结构

  • 国外主流IT企业面试:算法数据结构+系统设计面
  • 国内主流IT企业面试:算法数据结构+系统设计面+操作系统+网络+数据库+...
  • 面试中的算法和数据结构并不是很多,常见的有
  1. Array(如各种Subarray的问题)
  2. LinkedList(各种翻转操作链表的问题)
  3. Queue
  4. Stack
  5. Binary Tree
  6. ......

学习的广度和深度

  1. 广度和深度并重
  2. 先广度(系统化学习),了解数据结构直接的联系
  3. 后纵深,深入的挖掘每一种数据结构的应用

数据结构分类

  • 线性数据结构1对1的关系
    • 数组&链
    • 栈和队列
  • 树状数据结构 1对多的关系
  • 图结构 多对多的数据结构
  • 树是更简单的图,链表是更简单的树

了解数据结构的特性

 

  1.数组Array

    a.可随机访问,可以访问每一个位置A[i]

    b.前缀和 Prefix Sum - SubArray问题的杀手锏

  2.链表LinkedList

    a.翻转列表的一系列问题,本质是是否了解Linkedlist

  3.树结构Tree

    a.Tree与Linkedlist的关系(链表本质上是一叉树)

    b.Tree本质上是链表的变种

  4.堆Heap

    A.优先队列的一种,能够在logn时间复杂度取出一个集合的最小值或者最大值

刷题的重要性

  • 学会分类和总结,按照专题,类别来刷题
  • 看别人的代码,不同的算法和数据结构
  • 做笔记

 

标签:学习,Tree,学好,链表,算法,广度,数据结构
来源: https://www.cnblogs.com/yzh1008/p/12430211.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有