1 学前须知

1 为什么要学习数据结构与算法

为什么要学习数据结构与算法?

■ 名企面试必考

□ 短时间内考察一个人长期潜力的捷径

数据结构与算法的应用

■ B树

■ 哈希

1 学前须知_第1张图片

■ 图

■ 最短路径算法

1 学前须知_第2张图片

■ 链表

■ 二叉树

■ 哈希函数

1 学前须知_第3张图片 1 学前须知_第4张图片

 

 

 

1 学前须知_第5张图片 1 学前须知_第6张图片

1 学前须知_第7张图片 1 学前须知_第8张图片

总结

■ 写出性能更高的程序

■ 快速学习新技术

■ 打开一扇全新的大门

■ 趁脑子还没生锈,攻克它。一次掌握,终生受益

■ Pascal之父Nicklaus Wirth凭借一个公式获得了图灵奖(计算机领域的诺贝尔奖)

□ 算法 + 数据结构 = 程序

2 编程语言的选择

使用什么编程语言学习?

■ Why Java?

□ C:非面向对象,写法复杂,大量内存管理代码

□ C++:写法复杂,大量内存管理代码

□ Objective-C、Swift:需要依赖Mac系统

□ JavaScript、Python:依赖于脚本解析器,同一个逻辑使用不同写法会影响代码性能,影响算法性能测评

□ Java:语法丰富严谨,更多的注意力可以放到业务逻辑上,建议使用至少Java8(JDK1.8)

1 学前须知_第9张图片

 

 

■ Windows、Mac系统,均可轻松搭建Java开发环境

 

 

 

■ 学好数据结构与算法,与编程语言无关

3 大纲

大纲

■ 分为至少3个阶段

□ 第1阶段:侧重于常用的经典数据结构(比如二叉树、哈希表、Trire等)

1 学前须知_第10张图片

□ 第2阶段:侧重于更高级的数据结构(比如图、并查集、跳表、布隆过滤器等)与各种算法(比如排序、KMP、贪心、分治、动态规划等)

□ 第3阶段:侧重于leetcode和算法真题(比如海量数据处理、字符串处理等)

✔ 在前2个阶段过程中,同样会穿插一些leetcode和算法面试真题

 

 

 

 

你可能感兴趣的:(数据结构与算法第一阶段,数据结构,算法)