自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_37711672的博客

。。。。。

  • 博客(10)
  • 收藏
  • 关注

原创 【数据结构与算法分析】08:红黑树(java实现)

简介红黑树是一种二叉查找树,在每个结点上增加一个存储位表示结点颜色,可以是RED或者是BLACK,通过对任何一条从根到叶的路径上各个结点着色方式的限制,确保红黑树不会有一条路径会比其他路径长出两倍性质:每个结点或是红的,或是黑的;根结点是黑色的;每个叶结点(NIL)是黑的;如果一个结点是红色,则他的两个儿子都是黑色;对每个结点,从该结点到其子孙结点的所有路径上包含相同数据的黑结...

2018-09-27 17:41:42 125

原创 【数据结构与算法分析】07:堆排序

1.堆2.保持堆的性质2.1算法2.2算法分析3.建堆3.1算法3.2算法分析4.堆排序算法4.1算法4.2算法分析1.堆(二叉)堆数据结构是一种数组对象,可以被视为一颗完全二叉树。表示堆的数组A是一个具有两个属性的对象:length[A]是数组中元素个数,heap-size[A]是存放在A中的堆的元素个数,heap-size[A]<=...

2018-05-30 13:09:45 244

原创 【数据结构与算法分析】06:插入排序与归并排序

插入排序基本思想伪代码算法分析归并排序基本思想算法流程算法分析插入排序基本思想插入排序是最基本的排序方式,下面给一个基本思想: 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。伪代码Insertion-Sort(A,n) //数组A有n个元素,对A进行排序for j...

2018-04-13 14:53:22 284 1

原创 【多线程与并发】:发布与逸出

目录目录发布与逸出发布一个对象内部可变状态逸出this引用逸出关于发布发布与逸出 发布(publish) 一个对象是指,使对象能够在当前作用域之外的代码中使用。当某个不应该发布的对象被发布时,这种情况就被称为 逸出(escape)。发布一个对象public static Set<Secret> knownSecrets;//公...

2018-04-02 09:57:28 507

原创 【多线程与并发】:多线程与内存可见性

目录目录前言1.基本概念1.1线程与进程1.2JAVA内存模型(JMM)1.3常见的可见性错误2.解决方案2.1synchronized关键字2.2volatile关键字前言可见性是一种复杂的属性,因为其错误总会违背我们的直觉。在单线程环境中,如果向某个变量先写入值,然后在没有其他写入操作的情况下读取这个变量,那么总能得到相同的值。然而,当读...

2018-03-22 13:43:47 1576

原创 【数据结构与算法分析】04:散列

散列之前写好的都发表了,不知道为啥被覆盖了,心痛到无法呼吸o(╥﹏╥)o,这里就不写什么基本的散列函数、散列函数的选择啊,散列过程图了,以后有时间有心情再补吧,直接贴个实现代码好了…….public class SeparateChainingHashTable <T>{ private static final int DEFAULT_TABLE_SIZE = ...

2018-03-15 12:29:34 187

原创 【数据结构与算法分析】05:优先队列(堆)

目录优先队列(堆)1简单的想法1.1二叉堆1.1.1结构性质1.1.2堆序性质1.2堆操作1.2.1基本操作2.d-堆优先队列(堆)优先队列是一种特殊的队列,是允许至少下列两种操作的数据结构:Insert(插入)以及DeleteMin(删除最小者)。DeleteMin操作要求,优先队列要有办法能够找出最小者,在优先队列的实现中,如何做到花费最优...

2018-03-14 10:20:26 274 2

原创 【数据结构与算法分析】03:树(2)

伸展树对于m次连续搜索操作有很好的效率,保证从空树开始任意M次对树的操作最多花费O(MlogN)的时间。伸展树会在一次搜索后,对树进行一些特殊的操作。只要一个节点被访问过,那么就用AVL树的旋转方法把这个节点移动到根节点。具体来说,分为以下情况:如果访问节点X的父节点是树根,那么我们只要X和树根;这就是沿着访问路径上的最后的选择;X有父亲(P)和祖父(G),存在两种情况以及对称...

2018-03-09 19:44:37 166

原创 【数据结构与算法分析】02:树(1)

前言:对于大量的输入数据,链表的线性访问时间太慢,不易使用,提出一种新的数据结构概念——树,下文涉及的数据结构叫做二叉查找树(binary search tree)预备知识:一棵树是一些节点的集合,该集合可以是空集,若非空,则一棵树由称作根(root)的节点r以及0个或多个非空的子树T1,T2,...,Tk组成,每一个子树的根都被来自根r的一条有向的边(edge)所连接。二叉树:(binary t...

2018-03-08 22:03:46 181

原创 【数据结构与算法分析】01:表、栈和队列

写在前面:该类文章作为笔者的读书笔记,仅供参考。数组:动态指定,但需要对于大小的最大值进行估计(估计过大浪费空间);插入删除平  均需要移动表一半的元素,最坏情况为O(N)线性查找的话,时间复杂度为O(N)二分查找的话时间为O(longN)无序数组插入的时间复杂度为O(1)有序数组插入的时间复杂度为O(N)删除操作的时间复杂度均为O(N)链表:不连续存储(避免插入删除的线性开销),每个结构均包含表...

2018-03-07 11:22:48 145

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除