1.堆:堆是一种树,由它实现的优先级队列的插入和删除的时间复杂度都是O(logn),用堆实现的优先级队列虽然和数组实现相比较删除慢了些,但插入的时间快的多了。当速度很重要且有很多插入操作时,可以选择堆来实现优先级队列。2.java的堆和数据结构堆:java的堆是程序员用new能得到的计算机内存的可用 ...
分类:
编程语言 时间:
2018-02-25 15:49:10
阅读次数:
245
1.哈希表:它是一种数据结构,可以提供快速的插入操作和查找操作。如果哈希表中有多少数据项,插入和删除操作只需要接近常量的时间。即O(1)的时间级。在计算机中如果需要一秒内查找上千条记录,通常使用哈希表。哈希表的速度明显比树快,编程实现也相对容易。但哈希表是基于数组的,数组创建后难于扩展。某些哈希表被 ...
分类:
编程语言 时间:
2018-02-23 18:52:59
阅读次数:
184
春晚好看吗?不存在的!!! 在Java数据结构和算法(三)——冒泡、选择、插入排序算法中我们介绍了三种简单的排序算法,它们的时间复杂度大O表示法都是O(N2),如果数据量少,我们还能忍受,但是数据量大,那么这三种简单的排序所需要的时间则是我们所不能接受的。接着我们在讲解递归 的时候,介绍了归并排序, ...
分类:
编程语言 时间:
2018-02-15 23:20:39
阅读次数:
432
1.链表:链表是继数组之后第二种使用的最广泛的通用存储结构,它克服了数组的许多弊端:无序数组的查找慢问题,有序数组的插入慢问题,数组定义时的定长问题。它也可取代数组,作为其他数据结构的基础。 2.引用的概念补充: 3.单链表代码: 3.1.Link.java 1 package com.cn.lin ...
分类:
编程语言 时间:
2018-02-14 20:18:44
阅读次数:
232
前面我们介绍了树这种数据结构,树是由n(n>0)个有限节点通过连接它们的边组成一个具有层次关系的集合,把它叫做“树”是因为它看起来像一棵倒挂的树,包括二叉树、红黑树、2-3-4树、堆等各种不同的树,有对这几种树不了解的可以参考我前面几篇博客。而本篇博客我们将介绍另外一种数据结构——图,图也是计算机程 ...
分类:
编程语言 时间:
2018-02-14 18:20:37
阅读次数:
210
1.队列:和栈中的情况不同,队列中的数据项不总是从数组下标0开始,移除一个数据项后,队头指针会指向下标较高的数据项,其特点:先入先出 2.图解 3.队列的实现代码: 3.1.Queue.java 3.2.QueueTest.java 4.队列插入和删除的时间复杂度和栈的一样,都是O(1) 5.优先级 ...
分类:
编程语言 时间:
2018-02-12 20:05:08
阅读次数:
149
1.数组作为java常用的数据结构之一,使用相对简单,下图展示了数组常用操作在允许和不允许重复值的情况下的比较次数 2.进行封装后的代码: ...
分类:
编程语言 时间:
2018-02-12 15:20:52
阅读次数:
134
数组 数组是应用最广泛的数据存储结构。它被植入到大部分的编程语言中,由于数组十分易懂,所以在这里就不赘述,主要附上两端代码,一个是普通的数组,另一个是有序数组。有序数组是按关键字升序(或降序)排列的,这种排列使快速查找数据项成为可能,即可以使用二分查找。 普通数组的java代码: 有序数组的java ...
分类:
编程语言 时间:
2018-02-11 16:17:00
阅读次数:
175
目录 数组综述 Java中的数组 创建数组 访问数组 初始化数组 有序数组 线性查找 二分查找 有序数组的优缺点 大O表示法(order of) 为什么不用数据解决一切 创建数组 访问数组 初始化数组 有序数组 线性查找 二分查找 有序数组的优缺点 - 小结 数组综述 数组是最广泛的数据存储结构,其 ...
分类:
编程语言 时间:
2018-02-06 18:07:55
阅读次数:
187
在Java数据结构和算法(五)——队列中我们介绍了优先级队列,优先级队列是一种抽象数据类型(ADT),它提供了删除最大(或最小)关键字值的数据项的方法,插入数据项的方法,优先级队列可以用有序数组来实现,这种实现方式尽管删除最大数据项的时间复杂度为O(1),但是插入还是需要较长的时间 O(N),因为每 ...
分类:
编程语言 时间:
2018-02-02 21:47:52
阅读次数:
205