随笔分类 - 数据结构与算法
摘要:堆就是一棵二叉树,所以我感觉堆挺难的 今天先说大根堆吧,就是父一定要大于子,然后现在讲的就是用堆实现优先级队列 优先级队列,本质上就是找到那个优先级最高的让他出列嘛,然后就涉及到父与子的次序问题,然后有三个重要公式 先说说加法,这个直通大根堆的本质 就是加东西进去,然后先放在末尾,接着试着往上走,发
阅读全文
摘要:先说说队列,队列就是跟排队一样,从头部出去,从尾部进来,堆的话,可以把它理解为一本书,从最顶部(也就是尾巴进去),从最顶部出去 先说说队列,学了两种实现方式,一种是数列实现方式,一种是链表 先说说数列,数列要实现队列(不管是单向还是双端)的话,有个难点就是从头部操作,一般的操作,可能就是,后排后移,
阅读全文
摘要:归并排序就是,把一群数据一直分,一直分,分到不能再分之后,一个个按顺序把你们装进去 讲讲第一个难点,上面两个mergesort归并,其实这是一个把人给分开,分成两组,接着再分,再分。。。分到没办法分的时候,往下走。。。然后接着就是定义指针i j k,然后就有一个困扰了我很久的问题,为什么可以在递归中
阅读全文
摘要:第一种讲法就是循环的方式,因为要循环遍历这个链表,所以我们会运用到一个很重要的哨兵思想,就是定一个没啥意义的哨兵,让head “make sense”,接着,我们的任务是对链表进行删除,那就涉及到一个前端链表的指向问题,但是现在这个是单向链表,我们无法知道你前面那个是谁,所以我们也可以想办法得到前端
阅读全文
摘要:还是老样子,先讲一下插入排序的一个概念,比如校合唱团要按身高排队,从左到右由矮到高,小糖同学左边的同学已经按照身高站好了,右边还很乱,于是团长小蓝姐姐想了一个办法,她叫小糖同学往左看,小糖同学左边第一位叫男低1号,左边第二位叫男低2号,右边第一位叫男高1号,右边第二位叫男高2号,以此类推。。。小糖走
阅读全文
摘要:说来好笑,暑假一腔热血想进acm,在学插入排序,归并排序这两个玩意,耗费了我整整一个星期都没搞懂,一度让我想放弃,觉得自己刚开始学算法就被打败了,不配coding了,后面请教别人,才发现里面有个递归思想我还不会,所以很痛苦。。。暑假结束了,递归我还没那么懂,今天来复仇了 先说说递归,本质上就是一个函
阅读全文
摘要:对于二维数组,想要遍历的话,一行一行读和一列一列都读可以,但是大多数情况都选择一行一行,为什么呢? 涉及到一个缓存的概念,一般都是cpu去计算,它会先去缓存找,如果找不到才去内存,先说缓存,一般缓存就是类似于一行一行,有个临近效应,顺便把旁边的也读了,十分方便,这就是缓存,入股一列一列,读完一个,找
阅读全文
摘要:现在,要自己写一个动态数组出来,这很有意思,可以让数组变得灵活高级 先写出它的容量,capacity,看看就是做一个箱子,看看要做多大个,这个是较为稳定的 接着就是逻辑长度size,就是箱子里实际上装了多少东西,这个就是比较容易浮动的 然后既然是动态数组,那也要建立一个最基础的数组装着 接下来就是方
阅读全文