•         
    2018-12-21
    老师是高手,把这么多其他人甚至课本上讲的蹩脚难懂的知识,娓娓道来,深入浅出。
    买了这门课一开始没怎么看,最近两天有空就看,觉得是一种享受!
    
     40
  • 陈阿票
    2018-12-21
    基本上一下子都知道用什么数据结构和算法去解决,但是实际代码我肯定写不出来,心里总有一种纸上谈兵的感觉。
     1
     35
  • alic
    2018-12-22
    这门课程以后也会反复看的,希望老师也不要因为掉队人多了就松懈了,加油。
    
     12
  • 渔人
    2019-01-28
    第二题,前K大的订单,您的描述有些简略,不容易理解,我重复描述一下,您看对不对哈。 10个库,取前K大的订单, 第一次从各个库中分别取出最大的订单,组成一个数量为10的大顶堆。另外维护一个数组,刚开始是空的。 这时从大顶堆中弹出堆顶元素(堆中最大值),将堆顶元素写入数组,然后在该元素所在的库中按序拿出第二个元素写入大顶堆填上空缺,大顶堆会重新平衡,堆顶元素可能会变。 这时重复上面的步骤,继续弹出堆顶写入数组,并在弹出元素所在库中按序拿下一个值填入大顶堆,大顶堆又会重新平衡,接着继续弹出堆顶元素写入数组····直到数组的长度为K时,整个过程结束。

    大顶堆的大小一直为10,堆每次平衡后,就将堆顶搞出来,重新写入一个值,周而复始,取K次堆顶就是前K大的集合了。
    @ban
    展开
    
     4
  • jiemoon
    2018-12-21
    老师,像那个猎头的题目,用多个数据结构的话,更新操作会出现数据不一致的情况?

    作者回复: 加个锁?主要还是看操作是不是对数据一致性敏感吧

    
     4
  • RAY
    2018-12-25
    学习的老师的这门课程,总有种相见恨晚的感觉,真正体悟到了算法之美。举重若轻,方为大师,老师真可谓大师。

    作者回复: 哈哈哈 过奖了

    
     3
  • Zoctopus
    2019-02-08
    认真看了老师六个实战题目和详细解析,我觉得每道题可以当做一个小项目来练手了。同时也真实感受到基础的重要性!

    作者回复: 是的,好好写写,收获会很大。

    
     2
  • 怀特
    2019-01-09
    实战测试题一:
    其实算法问题,可以笼统的归纳为:数据以及数据之上的索引。
    有的数据是自带索引的,比如数组其实自带了下标的索引
    如果数据没有索引,就需要自建索引。如果我们自己建,那就是采取各种数据结构来构造一个索引;否则,比如据库的索引,也是建了与数据分离的索引的数据结构。
    从这个角度讲:
    1、根据id来查找猎头信息: 猎头信息存储到数组中就可以,这样很快
    2、根据积分来查找猎头信息:可以旁边建立基于积分的数组来作为索引,节点数据就是猎头id
    这样:
    1、猎头信息存储在数组中
    2、自建一个索引,分别是 积分+id的有序数组
    注意积分变化时维护自建索引的有效性,就可以了。
    这样没有用高深的数据结构,可能会费一些内存和费一些cpu,但实现简单,基本够用了,比较通用。
    展开
    
     2
  • 挨踢菜鸟
    2018-12-23
    老师,我想问一下,您除了讲数据结构之外,本专栏之后还会讲一些其他的吗,比如设计模式之类的,看您的课程真是一种享受,非常期待您其他的专栏
     1
     2
  • 传说中的成大大
    2018-12-21
    实战测试1:
         本来想的用树来维护通过ID的增删改查, 用积分做成一个hash表 每个hash下标对应多个猎头ID, 也可以用跳表实现增删改查

    实战测试2:
    维护一个大小为k的小顶堆 每次读一个库的数据 然后维护这个小顶堆

    实战测试3:
          维护一个优先队列,根据优先级来判定 突然到来的线程请求是否该执行,也就是该线程是否在优先队列优先级高的区域

    实战测试4:
           能想到二分法

    实战测试5:
            不会

    实战测试6:
            不会
    以上题目是未看过任何答案和提示想出来的

    看了解答 除了测试6没多大印象以外,其他的都能有很深刻的印象

    学习目标: 最开始学习数据结构和算法的目标就是说要掌握好树和图,但是实际上却发现了更多需要我去掌握的数据结构和算法
    实施情况, 坚持了三个月 每一篇文章都认真仔细的学习了 ,总得来说收获颇多,尤其是了解很多以前都不了解的数据结果和算法,扩充了自己的知识面

    接下来的目标还是以本位为测试基准,优先针对性的复习,然后再把课程过一遍,坚持自己的学习初衷 我一定要把数据结果和算法学好!
     还是谢谢老师

    展开
    
     2
  • Phoenix
    2019-02-28
    老师,第二题,我有另一条思路,想请老师教导和指点
    正如老师所说,数据库最大性能瓶颈就是在IO,所以反复执行DB的IO操作是低效的
    我想法是要高效实现第二题的要求,又尽量对数据库的IO操作,有以下思路
    1 借助桶排序的思想,将订单按金额从小到大的规则分布在10个库中
    2 要查找金额最大的前k订单,就先从第10个库中检索订单,满足K数量就直接返回
    3 不满足k数量,在从第9个库中查找,以此类推,直到满足k数量,返回结果
    展开
    
     1
  • ban
    2018-12-22
    把取出来的10个订单放到优先级队列中,取出最大值(也就是大顶堆堆顶数据),就是全局金额最大的订单。然后再从这个全局金额最大订单对应的数据库中,取出下一条订单(按照订单金额从大到小排列的),然后放到优先级队列中。一直重复上面的过程。

    老师这段话我看到好多遍,想了好多次一直没搞懂,为什么取出最大金额的数据库查到下一条订单放到队列能理解,但是下次重复这个过程还是从队列中取出最大金额的下一个订单,这样每次最大的金额不是同一个吗,取出的订单还是同一个?

    还有另外一个问题就是全部取出来后怎么判断这个队列是 top k的订单金额?

    第二次回复,求老师讲解,自己研究好久没搞透
    展开
    
     1
  • 才才
    2018-12-21
    还得看好几遍,还得练习
    
     1
  • 传说中的成大大
    2018-12-21
    我以前是完全没有接触过数据结构和算法,是一个半路出家的和尚,到如今学了这么多,我觉得真心成长了很多,我会一如既往的努力的!
    
     1
  • 丁乐洪
    2020-02-03
    感觉我太难了
    
    
  • 静静聆听
    2019-09-22
    老师讲的非常好,但是我们不能光凭老师的文章去看懂数据结构,还要自己实战,搜索文章学习才行
    
    
  • DFighting
    2019-08-07
    看了这些题目,怎么说呢,有点知其然,不知其所以然的感觉。应该是没有实际应用过的缘故吧,这个彩蛋很好,适合动手实践实践,不然过段时间又忘了

    作者回复: 知其所以然看里面的文章链接呢,毕竟是测试题,限于篇幅,不可能讲解太多。

    
    
  • 不去彼岸
    2019-04-25
    实战测试题二:
    如果k的值很大,用归并排序merge的方法时间复杂度会很高,是不是可以用二分查找的思想
    取每个库中第k位的金额,然后根据这些金额中的最大金额max与最小金额min,得到中间值mid,再用这个中间值去各个库中查大于这个值的数量,加起来就是这个中间值的排名ki,ki>k则说明中间值比要找的金额大,递归查找(min,mid)中间值的排名,ki<k,递归查找(mid,max)中间值的排名,这样时间复杂度就是10*logn 也就是O(logn)
    
    
  • 路上的始终
    2019-04-24
    涉及到一定的需求场景时虽然不能立刻写出代码,但是有很多思路,能写伪代码
    
    
  • 天空只能仰望?
    2019-04-20
    哈哈,第二遍刷过来很多例子多写了一遍,还是有很多的印象,测试相关题目不一定想到的都是最优解但是也都能联想到相关数据结构和问题解决办法,感谢老师👨‍🏫!
    
    
我们在线,来聊聊吧