极客大学 "算法训练营" 第一期 刻意练习一个月, 毕业总结

      毕业6年左右, 在工作中真真不需要使用到算法, 只是不断地谈业务需求, 实现业务功能, 产品上线, 自己是积累了一定的业务能力和一些管理经验. 但是有时静下心来, 对于一个程序媛来讲, 不由得觉得心虚. 于是决定还是要提升自己的代码能力和逻辑思维能力. 看到极客大学举办的数据结构与算法课程, 毫不犹豫就报了名, 作为重拾算法的起点吧.

      一个多月的算法学习, 基本历程如下:

      首先, 阅读王争老师的<<数据结构与算法之美>>专栏, 该专栏对数据结构和算法的讲解确实很细致, 既简易清晰, 又不乏有深度. 对于数据结构与算法基础为0或相关基础比较薄弱的初学者, 确实是首选, 学习起来也不会枯燥乏味. 每每了解一种数据结构和算法之后, 就忍不住自己也推算一遍, 并用自己熟悉的编程语言(java)实现一遍. 然后再对照专栏中代码样例, 找出自己代码的漏洞, 再进行思考总结, 比如边界条件考虑不周; 或者是思维方式, 解题思路需要转变, 比如动态规划解决0-1背包问题, 用二维数组来记录每层达到的不同状态, 那么用一维数组是否也可以解决问题呢, 这样还可以提高内存使用率…等等.每每需要修改的时候, 却也是收获满满的时候, 也体会到数据结构与算法之美呀.

       在学习数据结构与算法过程中, 也会去思考一些工业实现, 去琢磨其中使用到的数据结构与算法, 比如Java库中的HashMap, jdk8之前,内部实现是由数组+链表来实现; 在jdk8中的实现,当链表长度超过8时, 链表将转换为红黑树; 再比如Arrays.sort的底层实现, 对于基本数据类型, 采用双轴快速排序… 而对于对象数据类型, 会根据排序个数, 又采用不同的排序方式, 比如小于47个对象数据的排序, 采用插入排序…大于等于47但小于286个对象数据…采用快速排序, 大于等于286个对象数据, 采用归并排序. 当然我了解的也只是冰山一角, 但数据结构与算法确实是了

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值