上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 38 下一页
摘要: 基数排序(Radix Sort)是在桶排序的基础上发展而来的,两种排序都是分配排序的高级实现。 分配排序(Distributive Sort)的基本思想:排序过程无须比较关键字,而是通过“分配”和“收集”过程来实现排序。它们的时间复杂度可达到线性阶:O(n)。 基数排序代码: [7, 8, 9, 6 阅读全文
posted @ 2016-12-22 16:43 hongdada 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。 分治算法的一般步骤: (1 阅读全文
posted @ 2016-12-22 14:16 hongdada 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 插入排序分为直接插入排序和希尔排序 直接插入排序: 直接插入排序原理就是,假设前面n-1(n>=2)个元素已经排好序,现在要把第n个元素找到正确的位置并插入。 [7, 8, 9, 6, 1, 4, 3, 2, 5, 0, -1, -2, 10, -3] 第1轮排序结果:[7, 8, 9, 6, 1, 阅读全文
posted @ 2016-12-21 16:14 hongdada 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 选择排序有简单选择排序,堆排序 简单选择排序: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2, -3] 第1轮排序结果:[-3, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2, 9] 第2轮排序结果:[-3, -2, 7, 6, 5, 4, 3, 阅读全文
posted @ 2016-12-13 20:24 hongdada 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 首先排序分为四种: 交换排序: 包括冒泡排序,快速排序。 选择排序: 包括直接选择排序,堆排序。 插入排序: 包括直接插入排序,希尔排序。 归并排序 基数排序 交换排序主要有两种: 1:冒泡排序 Before sort: [-3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 阅读全文
posted @ 2016-12-10 15:27 hongdada 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 在AQS里面进行阻塞线程,解除阻塞线程就用的LockSupport。 JDK1.8源码: package java.util.concurrent.locks; import sun.misc.Unsafe; public class LockSupport { private LockSuppor 阅读全文
posted @ 2016-12-10 14:14 hongdada 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 生产者-消费者(producer-consumer)问题,也称作有界缓冲区(bounded-buffer)问题,两个进程共享一个公共的固定大小的缓冲区。其中一个是生产者,用于将消息放入缓冲区;另外一个是消费者,用于从缓冲区中取出消息。问题出现在当缓冲区已经满了,而此时生产者还想向其中放入一个新的数据 阅读全文
posted @ 2016-12-09 18:21 hongdada 阅读(28367) 评论(2) 推荐(9) 编辑
摘要: BlockingQueue接口定义了一种阻塞的FIFO queue,每一个BlockingQueue都有一个容量,让容量满时往BlockingQueue中添加数据时会造成阻塞,当容量为空时取元素操作会阻塞。 ArrayBlockingQueue是一个由数组支持的有界阻塞队列。在读写操作上都需要锁住整 阅读全文
posted @ 2016-12-09 17:44 hongdada 阅读(933) 评论(0) 推荐(0) 编辑
摘要: 不需要分页时,直接在select内添加option列表 如果要分页的话 这里要注意的一个问题是,后台返回的数据列表必须含有id这个字段,不然会出现问题,一直不能选中数据。 这个不知道的人,被坑死了! 阅读全文
posted @ 2016-12-09 14:46 hongdada 阅读(684) 评论(0) 推荐(0) 编辑
摘要: SynchronousQueue是无界的,是一种无缓冲的等待队列,但是由于该Queue本身的特性,在某次添加元素后必须等待其他线程取走后才能继续添加;可以认为SynchronousQueue是一个缓存值为1的阻塞队列,但是 isEmpty()方法永远返回是true,remainingCapacity 阅读全文
posted @ 2016-12-08 23:45 hongdada 阅读(9550) 评论(5) 推荐(0) 编辑
摘要: 看代码看到 接口不能new ,不过可以生成一个匿名类,省略了写一个具体类实现接口的开销。 如果接口内有多个方法呢? 匿名类内部实现接口全部方法: 这种实现接口方式其实就是一个实现一个继承接口的匿名类。 http://blog.sina.com.cn/s/blog_70441c8e0101sgnf.h 阅读全文
posted @ 2016-12-08 10:52 hongdada 阅读(11716) 评论(0) 推荐(0) 编辑
摘要: 这两个队列都是线程安全的。 LinkedBlockingQueue: 此队列按 FIFO(先进先出)排序元素。队列的头部 是在队列中时间最长的元素。队列的尾部 是在队列中时间最短的元素。新元素插入到队列的尾部,并且队列检索操作会获得位于队列头部的元素。 链接队列的吞吐量通常要高于基于数组的队列,但是 阅读全文
posted @ 2016-12-07 17:59 hongdada 阅读(615) 评论(0) 推荐(0) 编辑
摘要: submit方法: submit返回的最终是FutureTask对象 execute方法: 具体的实现在ThreadPoolExecutor类中 submit内部调用execute submit有返回值 submit方便exception处理 submit的demo: call()方法被自动调用,干 阅读全文
posted @ 2016-12-01 16:21 hongdada 阅读(8800) 评论(0) 推荐(2) 编辑
摘要: Future表示一个任务的周期,并提供了相应的方法来判断是否已经完成或者取消,以及获取任务的结果和取消任务。 Future接口源码: public interface Future<V> { boolean cancel(boolean mayInterruptIfRunning); boolean 阅读全文
posted @ 2016-12-01 09:42 hongdada 阅读(1581) 评论(0) 推荐(0) 编辑
摘要: Thread: 窗口1卖掉了1张票,剩余票数为:4 窗口1卖掉了1张票,剩余票数为:3 窗口1卖掉了1张票,剩余票数为:2 窗口1卖掉了1张票,剩余票数为:1 窗口1卖掉了1张票,剩余票数为:0 窗口3卖掉了1张票,剩余票数为:4 窗口2卖掉了1张票,剩余票数为:4 窗口3卖掉了1张票,剩余票数为: 阅读全文
posted @ 2016-11-23 15:52 hongdada 阅读(271) 评论(0) 推荐(0) 编辑
上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 38 下一页