- 博客(12)
- 收藏
- 关注
原创 关于java中private、protected、friendly、public作用域探讨
最近遇到关于类中出现protected的问题,令我百思不得其解,随即在网上查找关于作用域的文章,发现描述的都是棱模两可,在这我想向大家详细赘述子问题。注: friendly表示属性或者方法前面不加另外三个关键字接下来我们进行一系列的测试:对于本类就不描述了,这4个都可以为所欲为重点说明的就是同一个package、不同的package、同一个package的子孙类、不同的package的子孙类上代码...
2018-06-22 10:25:19 555
原创 算法排序总结
当排序的数组已经是有序的情况下: 插入排序算法就会退化到O(n)这个级别 如果快速排序没有进行优化的情况下,可能会退化到O(n^2)的级别总体而言,快速排序是更加快的算法,一般系统级别的排序都是使用快速排序,如果有可能会有重复键值,会采用3路的快速排序。插入排序、快速排序和堆排序都可以直接在数组上交换元素来进行排序,归并排序需要开辟额外的空间。对于插入排序和堆排序而言,在排序过程中只需...
2018-06-22 08:57:19 178
原创 数据结构(java语言描述) --堆
堆是一棵完全二叉树,堆的每个父节点的值都大于等于子节点的值。或者我们用数组来存储二叉树。public class MaxHeap<E extends Comparable<E>> { private Array<E> data; public MaxHeap(int capacity){ data = new Array<...
2018-06-15 00:22:16 250
原创 数据结构(java语言描述)--Trie字典树
字典如果有n个条目,使用树结构,查询的复杂度是O(logn),假设要查询一百万个条目,则需要大约log2^20,也就是20。Trie查询每个条目的时间复杂度和字典中一共多少条目无关。时间复杂度为O(w),w为单词的长度,大多数的单词的长度比10要小。...
2018-06-14 17:33:05 166
原创 数据结构(java语言描述) --映射
映射存储(键,值)数据对的数据结构(key, value)根据键,寻找值新建一个map的抽象类public interface Map<K, V> { void add(K key, V value); boolean contains(K key); V get(K key); void set(K key, V newValue); ...
2018-06-14 15:40:58 400
原创 数据结构(java语言描述) --集合
之前实现的二分搜索树是不会存放重复元素的。因此可以实现集合的底层数据结构。在此之前我们新建一个FileOperation类,来导入文件。import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.uti...
2018-06-14 11:23:59 1226
原创 数据结构(java语言描述)--队列
队列的特点是先进先出。我们将以之前写的链表和动态数组为基础,编写不同的queue基于array的arrayqueuepublic class ArrayQueue<E> implements Queue<E> { private Array<E> array; public ArrayQueue(int capacity){ ...
2018-06-14 01:47:39 262
原创 数据结构(基于java语言描述)--栈
栈的特点:后进先出栈是一种线性结构相对数组,栈对应的操作是数组的子集只能从一端添加元素,也只能从一端取出元素这一端称为栈顶首先,创建栈的抽象类public interface Stack<E> { int getSize(); boolean isEmpty(); void push(); E pop(); E peek();}下面建立的两个...
2018-06-13 20:01:43 219
原创 数据结构(基于java语言描述) --AVL树
平衡树的定义:任意一个节点,其两个子树高度差不超过1import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;public class AVLtree<K extends Comparable<K>, V> { private class Node{ ...
2018-06-13 17:15:07 158
原创 数据结构(基于java语言描述) --链表
数组是固定的容量,或者动态数组的扩容、缩容依赖于某个固定函数,而链表则是可以真正的做到动态扩充,它是真正的动态数据结构!在链表中,数据储存在“节点”中。就像破案一样,当你准备破案,就要尽行分析,你试着找着这个案件的线索点(节点),找到了,发现该线索点里面有着破除案件的一部分信息(节点里面存储的属性),还储存着指向下一个线索点(节点)的信息,就这样你又顺着线索点继续寻找,又获得了一份信息和下一个线索...
2018-06-12 12:45:34 233
原创 数据结构(基于java语言描述)--动态数组
话不多说,让我们先上代码注:构建数组所存储的元素可能为String、Integer等不同的类型,所以我们有必要设置一个泛型,让数组可以容纳我们调用时所规定的数据类型。public class Array<E>{ private E[] data; private int size; //有参构造函数,传入数组的容量为capacity; public Array(...
2018-06-12 10:14:00 189
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人