Skip to content

【013-week1】个人学习总结 #32

@sodexx7

Description

@sodexx7

本周主要对15,16日所讲内容进行了梳理,输出数据结构,算法脑图。对于所讲内容有个框架性认识,在之前的认识脉络上稍微清楚了一点,但离具体掌握与内化还有不少距离。

从基础数据结构(数组,链表),map,再到堆,栈,队列,集合。站在Java实现map,堆,栈,队列,集合等数据结构的角度看,实现方式都是数组或者链表。

而在链表的基础上,如果一个节点不仅仅指向一个节点,则会演化出树的结构。也就是链表像一条直线,而树则像一个平面。图的概念则比树则更加复杂,树是一种特殊的图。

对于树的数据结构及遍历算法的讲解则是最多的。二叉搜索树的定义:左节点的最大值小于根节点,右节点的最小值大约根节点。并且对于所有子节点同样满足。从而导致对于二叉搜索树中序的遍历则为升序遍历。

BFS与DFS的理解与使用,则是后续贪婪算法,DP的基础。

时间复杂度与空间复杂度。时间复杂度不直观的主要是0(logN),k的N次方。等比数列的求和的时间复杂度为:0(logN),二叉树,有K层,则时间复杂度则为KN次方。推倒过程还需自己再跑一遍。空间复杂度则相对简单。

算法方面,大的学习方向为1)递归-循环 2)分治(Divide & Conquer) 3)在树(图/状态集)中寻找特定节点4)二分查找 5)贪心算法 6)动态规划

接下来的方向:1)每种数据结构在练习的时候充分体会其数据特性,并把握如何使用该数据结构的在解决该问题时的巧妙性。
2)时间复杂度与空间复杂度
3)几个题型的梳理再次练习
a 爬楼梯问题
b 8皇后问题
c 括号问题的扩展

数据结构与算法脑图
数据结构

算法

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions