摘要: 排序算法(二):堆排序-Java实现 首先对堆排序有个整体的认识,堆排序是一个不稳定的排序算法,其平均时间复杂度为O(nlogn),空间复杂度O(1)。 那么何为堆排序呢?所谓堆排序是借助于堆的概念来完成的排序算法,其是选择排序中的一种,因此通过选择排序来理解堆排序会更加容易一些 下面我们来看一下堆 阅读全文
posted @ 2017-10-09 00:47 房杰 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 分布式锁-多种实现方式 一. 基于Redis实现的分布式锁 不同进程之间需要互斥访问共享资源,分布式锁是一种非常有用的手段。 1. 基于setnx(), expire(), delete()实现,实现简单,但是setnx()操作是一个非常耗时的操作,就算redis百万QPS,在高并发的场景下也是有问 阅读全文
posted @ 2017-11-01 10:17 房杰 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 排序算法(三):简单选择排序算法-Java实现 简单选择算法是除堆排序的另外一种选择排序算法,其也是一种不稳定的排序算法,平均时间复杂度为O(N2),空间时间复杂度为O(1) 简单选择算法相对比较简单,并且易于理解,具体排序算法思路如下: 实现代码如下: 阅读全文
posted @ 2017-10-09 01:05 房杰 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 排序算法(一):概述 排序是程序开发中一种非常常见的操作,对一组任意的数据元素(或记录)经过排序操作后,就可以把他们变成一组按关键字排序的有序队列。 对于排序算法从以下几点去衡量算法的优劣: 对于排序算法的分类: 外部排序: 内部排序: 排序算法整体印象图(来自网络截图),我们先对整体的排序算法一个 阅读全文
posted @ 2017-09-27 14:15 房杰 阅读(121) 评论(0) 推荐(0) 编辑