程序员

堆排序

数据结构堆 是一颗完全二叉树。完全二叉树:设二叉树的深度为h,除了第h层以外,前面的每一层的节点数都达到最大,并且第h层的叶子都集中在最左边。 所有非终端(有叶子)节点的值均不小于(或不大于)其左、右孩子的值。前者叫大顶堆,后者叫小顶堆。 堆排序思想 利用堆数据结构的堆顶肯定是最大值(或最小值),则…

程序员

谈谈Collections.sort()——使用篇

  本来一直在CSDN上写,然后今天不知道为什么CSDN上发表不了文章了,正好我听朋友的介绍来到这里,希望和大家一起讨论问题。其实说白了我写博客大多数是为了记录自己的成长过程,顺便整理自己学习情况。再者利索能力的和大家一起交流经验,话不多说,正文开始。  本人快要找工作了,看到日益严峻的就业情况,感…

程序员

设计模式系列之八外观模式

外观模式:提供了一个统一的接口,用来访问子系统的一群接口。外观定义了一个高层接口,让子系统更容易使用。   下面通过一个图来说明外观模式的使用,此图来自于《Head First设计模式》一书。 外观模式   从上图中可以看到,通过一个统一的Facade来调用复杂的子系统的类。   按我的理解,外观模…

程序员

锁的优化及注意事项

避免死锁,减少锁的粒度,锁分离 一、减少锁持有的时间; 二、减少锁的粒度; 三、锁分离; 四、锁粗化; 五、ThreadLocal的使用; ThreadLocal是解决线程安全问题一个很好的思路,它通过为每个线程提供一个独立的变量副本解决了变量并发访问的冲突问题。在很多情况下,ThreadLocal…

大数据

LintCode 丑数

题目 写一个程序来检测一个整数是不是丑数。丑数的定义是,只包含质因子 2, 3, 5 的正整数。比如 6, 8 就是丑数,但是 14 不是丑数以为他包含了质因子 7。 样例给出 num = 8,返回 true。给出 num = 14,返回 false。 分析 直接根据丑数的定义判断即可 代码 pub…