算法
宇光十色_FLY
任何一个傻瓜都能写出计算机可以理解的代码,唯有写出人类容易理解的代码,才是优秀的程序员。
展开
-
堆排序讲解及Java实现
堆排序一、首先先解释一下什么是堆?堆可以看做是一颗树,而且是一颗完全二叉树。不同的二叉树请看下图: 二、堆排序的特性 首先介绍复杂度: 时间复杂度:O(nlgn)… 空间复杂度:O(1) 鉴于堆这种数据结构本身的特性可以发现(以最大堆为例),根节点为数组中最大元素,左右子节点小于等于根节点。 另外,假设某个元素为序号为i(Java数组从0开始,i为0到n-1), 如果它有左子树,那么左子原创 2016-05-03 16:22:40 · 923 阅读 · 0 评论 -
跳表(SkipList)的Java实现
跳表(SkipList)的Java实现什么是跳表简单说跳表(SkipList)是一种可以替代平衡树的数据结构。跳跃表让已排序的数据分布在多层次的链表结构中,默认是将Key值升序排列的,以 0-1 的随机值决定一个数据是否能够攀升到高层次的链表中。它通过容许一定的数据冗余,达到 “以空间换时间” 的目的。跳跃表的效率和AVL相媲美,查找/添加/插入/删除操作都能够在O(LogN)的复杂度内完成...原创 2018-09-18 11:44:40 · 915 阅读 · 4 评论