今天一天的心情都很焦躁, 因为要等待幼升小摇奖的结果, 既想早点知道又不想知道. 到了下午4点, 宝山区还没公布, 然后到了4点15分的时候, 老婆突然发来两个字: 中了 哈, 真的非常开心, 立刻就原地跳了起来, 女儿就要成为一个世外的小学生啦. 虽然无数次在脑子里幻想会摇中, 但这一刻真正到来的
有10天没有更新博客了, 主要是因为博主最近忙于工作内部调动的事情. 到新公司按照博主我的要求, 电脑是肯定要好好重新折腾一番的. 写这篇博客的时候, 还有两天就摇号了, 相比内部调动, 还是女儿摇号的事情大. 在之前知道了操作系统的互斥锁的实现. 不过使用这些锁的线程, 行为目的都一样, 就是为了
最前边的这段话其实是我看完整个章节回来写的, 锁的本质就是一个变量, 操作系统通过硬件提供的各种原子指令, 构建出一些原子的操作. 然后将这些原子操作组合就来, 就达成了构建锁的功能. 一旦有了原子操作, 就不用担心了, 只需要最先执行原子操作的线程更改一个状态, 其他线程就都被堵在这个改变的状态上
在之前的算法中写出了Dijkstra算法, 后来发现这个人是并发领域的先驱, 很多专有名词都是这个人搞出来的. 又把数据结构过了一遍的今天, 我leetcode也刷了30多题了, 感觉后边一个要好好的看看并发, 一个要好好的看一下网络编程. 之前试着看了一下经典的 Java并发编程实战, 发现还是有
第二次来图算法了, 这次比原来的理解程度又要深一些了, 当然还有一些连通图问题可能用数组等其他方式来解决也可以. 这次是简单一点的图算法, 但是为了掌握, 都是自己对着算法写出来的, 想用那些高级算法,还是得先把基础算法的原理掌握透彻. 图算法类的接口 图算法 - 广度优先遍历 图算法 - 深度优先
写了半天顶点, 最后终于要组成一个图了. 其实图很容易, 由于无向图是特殊的一种有向图, 无权图是权重为0的有权图, 所以只需要实现一个一般的有权有向图就可以了, 无向图和有权有向图只不过是在准备图数据的阶段需要进行的操作不同而已. 图类的接口 图的实现 - 添加顶点和边 图的实现 - 其他方法 图
有10天的时间没写博客了, 这两天也没闲着, 内审来检查的时候提出了一些新的要求, 然后根据这些要求, 短短三天一天一个小版本号,把合同台账给升级了. 目前公司新买了一台VPS,然后我把台账系统挂到了上边. 然后做了个二级域名解析: http://cms.conyli.cc, 没有采用部署的方式,
二叉查找树已经实现了, 但是二叉查找树有个巨大的缺点, 即可能会出现不平衡的状态, 比如使用我们自行编写的二叉树, 如果每次添加的数都比之前所有的数要大, 比如把一个升序数组放入二叉树中, 二叉树其实并没有分叉, 因为每个节点都会挂在下一个节点的右节点上, 此时的二叉树退化成了一个链表. 链表里搜东
堆是结点具有特定排列次序的完全二叉树, 即一层没铺满之前, 子节点都是从左往右铺. 由于这个特点, 堆最常见的实现是使用数组, 这个堆并不是操作系统在运行程序的时候分配给程序的用于存储共享数据空间部分, 而是特指这种数据结构. 堆的基础概念 堆的实现 - 数组 堆的实现 - add()方法 堆的实现
学算法现在真是越来越难了, 一杯茶, 一包烟, 一个算法想半天. 昨天看完了二叉查找树的递归删除, 晚上睡觉的时候还在想着这个东西, 最要好好理解的就是将所有的操作都变化为定位要删除的节点为根节点这一个操作, 然后在递归中每次返回新子树的根节点, 重新又把树串联起来的这个思路很重要. 今天来看看迭代