Skip to content

Latest commit

 

History

History
116 lines (79 loc) · 5.18 KB

File metadata and controls

116 lines (79 loc) · 5.18 KB

Awesome-Android-Learning-Guide

努力打造一份系统、全面的安卓开发者进阶指南

数据结构与算法

2018年4月6日星期五

今天晚上八点和小伙伴们开了个小会,主要内容是下面三点:

  1. 认识到学习数据结构、算法的作用
  2. 确定学习内容(重点在于掌握数据结构及算法的使用场景)
  3. 负责人认领知识点

学习目的主要是掌握使用场景,然后具备自己写简单数据结构的代码能力。


学习数据结构、算法的作用

首先是学习数据结构和算法的作用,有的小伙伴可能觉得这些知识面试问的概率也不大、工作中也没怎么用到,学这个没什么用,不如学点经常用到的。

对此我推荐大家去看下这个链接:

大概总结一下,数据结构和算法其实是开发者编程中需要用到的思想和工具,程序员学习数据结构算法和修理工学习扳手、螺丝刀如何使用及用处是一个目的,都是为了在将来遇到问题时,可以第一时间选择对正确解决思路和工具。

对数据结构、算法有所掌握的开发者,可以在存储数据时,知道根据这个数据的特点选择合适的存储结构(经常随机访问的用数组、容量不可知的选链表、先入先出的选队列、先入后出选栈等等);在遇到数据需要处理(排序、查找、修改等)时,也知道该选择哪种处理方法更高效。这在编程过程中是相当重要的基础,这也是大学为什么要开设这门基础课程的原因之一。

通常来说,了解常用数据结构和算法的开发者,写出的代码要比不了解的人写的性能高出许多,这也是很多公司面试要考察这个能力的原因。

总结一下:学习数据结构算法可以提升开发者的编程思维、代码性能和效率。


学习方式

吸取前面学习 Java 基础知识点推进缓慢的经验,我们更换了学习方式,改成了“共同学习、一人编辑”的模式。

一起学,2天一个知识点,学了多少算多少,指定一个负责人,这个人需要多查一些,把大家提交的汇总到一起,然后丰富为一篇文章。

学习流程总结一下,分四步:

  1. 负责人在知识点学习期间多带节奏,提醒小伙伴们学习
  2. 两天内所有人给负责人私发自己的学习收获
  3. 负责人在知识点第二天晚上把大家发给他的发到群里,最好编辑到一个文件里,让大家看看小伙伴都写了点啥
  4. 负责人尽快整理大家发给自己的总结,加上自己的理解,编辑成文章提交到 github

学习内容及负责人

每个知识点尽可能的多总结,最好围绕着 是什么、怎么实现的、有什么使用场景

20180408开始

  1. 数组和链表(使用场景及 反转链表)
  1. 散列表(哈希表)的性能、使用场景
  • 知北游负责
  1. 栈(使用场景及 2 个栈实现队列)
  • Alex_赵
  1. 队列( 使用场景、2 个队列实现栈)
  • Milo
  1. 汉诺塔的代码实现
  2. 二叉树的实现、遍历和查找,使用场景
  • Cloud
  1. 几种特殊的二叉树特点及使用场景:完全二叉树、平衡二叉树、二叉查找树
  • Struggle
  1. 对 B- B+ 树有基本的认识,使用场景
  • 张拭心
  1. 红黑树有基本认识,使用场景
  2. 堆的实现、使用场景
  3. 冒泡排序的场景及改进,时间复杂度
  4. 桶排序
  • 麦田哥
  1. 快速排序
  • 杨哲
  1. 插入排序
  • 金鑫
  1. 归并排序
  • 杨哲
  1. 二分查找的实现、场景、时间复杂度
  • 麦田哥
  1. 分块查找
  2. 图的两种遍历算法有基本了解,使用场景及效率对比
  • ZHL
  1. 字符串的匹配算法(主要学 KMP)
  • Anonymous
  1. 在 10亿 个数中找到最大的一万个数
  • Wustor

备注

  • 那些排序算法我们不求能写出来,只求大家一起把它的思想总结一下,然后记住什么时候使用和时间复杂度就好
  • 主要是过一遍对思路有个大致印象
  • 无法保证每个人学到的一样,这么多人聚在一起主要是为了有个氛围,学的快的提前看看下一个,学的慢的先有个印象,有精力了再多看看,不会的先百度,然后再群里问问
  • 大家最好有点紧迫感,给自己多立点 deadline,逼逼自己
  • 第一个知识点可以先多给几天,后边的一直准备着
  • 好的,第一个知识点我们下周日截止,刚开始为了让大家先适应,大家看完了第一个就顺着往下多看看

其实我做这个也是为了让自己有事干,不然没事总不知道干啥,就去打游戏刷手机了。

希望大家不要当做负担,在自己刷新闻或者刷抖音之前,先想想最近的知识点看了没有,每天都整理一点,长期积累下来会让你吃惊的。