摘要: 上篇文章介绍了时间复杂度为O(nlgn)的合并排序,本篇文章介绍时间复杂度同样为O(nlgn)但是排序速度比合并排序更快的快速排序(Quick Sort)。快速排序是20世纪科技领域的十大算法之一 ,他由C. A. R. Hoare于1960年提出的一种划分交换排序。... 阅读全文
posted @ 2018-08-25 10:56 郝云峰 阅读(254) 评论(0) 推荐(0)
摘要: 合并排序,顾名思义,就是通过将两个有序的序列合并为一个大的有序的序列的方式来实现排序。合并排序是一种典型的分治算法:首先将序列分为两部分,然后对每一部分进行循环递归的排序,然后逐个将结果进行合并。合并排序最大的优点是它的时间复杂度为O(nlgn),这个是我们之前的选择... 阅读全文
posted @ 2018-08-25 10:55 郝云峰 阅读(252) 评论(0) 推荐(0)
摘要: 本篇开始学习排序算法。排序与我们日常生活中息息相关,比如,我们要从电话簿中找到某个联系人首先会按照姓氏排序、买火车票会按照出发时间或者时长排序、买东西会按照销量或者好评度排序、查找文件会按照修改时间排序等等。在计算机程序设计中,排序和查找也是最基本的算法,很多其他的算... 阅读全文
posted @ 2018-08-25 10:54 郝云峰 阅读(175) 评论(0) 推荐(0)
摘要: 最近晚上在家里看Algorithems,4th Edition,我买的英文版,觉得这本书写的比较浅显易懂,而且“图码并茂”,趁着这次机会打算好好学习做做笔记,这样也会印象深刻,这也是写这一系列文章的原因。另外普林斯顿大学在Coursera 上也有这本书同步的公开课,还... 阅读全文
posted @ 2018-08-25 10:53 郝云峰 阅读(307) 评论(0) 推荐(0)
摘要: 前面一篇文章介绍了2-3查找树,可以看到,2-3查找树能保证在插入元素之后能保持树的平衡状态,最坏情况下即所有的子节点都是2-node,树的高度为lgN,从而保证了最坏情况下的时间复杂度。但是2-3树实现起来比较复杂,本文介绍一种简单实现2-3树的数据结构,即红黑树(... 阅读全文
posted @ 2018-08-25 10:44 郝云峰 阅读(187) 评论(0) 推荐(0)
摘要: Kafka 特点Kafka 最早是由 LinkedIn 公司开发一种分布式的基于发布/订阅的消息系统,之后成为 Apache 的顶级项目。主要特点如下: 同时为发布和订阅提供高吞吐量 Kafka 的设计目标是以时间复杂度为 O(1) 的方式提供消息持久化能力,即使对T... 阅读全文
posted @ 2018-08-25 00:36 郝云峰 阅读(177) 评论(0) 推荐(0)
摘要: 简介ActiveMQ 特点ActiveMQ 是由 Apache 出品的一款开源消息中间件,旨在为应用程序提供高效、可扩展、稳定、安全的企业级消息通信。它的设计目标是提供标准的、面向消息的、多语言的应用集成消息通信中间件。ActiveMQ 实现了 JMS 1.1 并提供... 阅读全文
posted @ 2018-08-25 00:35 郝云峰 阅读(288) 评论(0) 推荐(0)
摘要: 消息队列之 RabbitMQ 预流 关注2017.05.06 16:03* 字数 4884 阅读 87581评论 18喜欢 254赞赏 1关于消息队列,从前年开始断断续续看了些资料,想写很久了,但一直没腾出空,近来分别碰到几个朋友聊这块的技术选型,是时候把这块的知识整... 阅读全文
posted @ 2018-08-25 00:33 郝云峰 阅读(146) 评论(0) 推荐(0)
摘要: Zookeeper保证CP当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注册信息,但不能接受服务直接down掉不可用。也就是说,服务注册功能对可用性的要求要高于一致性。但是zk会出现这样一种情况,当master节点因为网络故障与其他节点失去联系时... 阅读全文
posted @ 2018-08-25 00:28 郝云峰 阅读(1016) 评论(0) 推荐(0)
摘要: 前言MyBatis是常见的Java数据库访问层框架。在日常工作中,开发人员多数情况下是使用MyBatis的默认缓存配置,但是MyBatis缓存机制有一些不足之处,在使用中容易引起脏数据,形成一些潜在的隐患。个人在业务开发中也处理过一些由于MyBatis缓存引发的开发问... 阅读全文
posted @ 2018-08-24 23:46 郝云峰 阅读(151) 评论(0) 推荐(0)