Java数据结构
文章平均质量分 86
数据结构
\(^o^)/kūn
这个作者很懒,什么都没留下…
展开
-
HashMap的实现(Java)
HashMap的实现HashMap是一个非常重要的类,得益于它的插入,删除,查询等时间复杂度都是O(n)的,如果运用合理,那么会使得你的算法或者程序很快。因此,亲手去写一遍HashMap,理解会更牢固一些。public class MyHashMap { private Node[] array;//哈希表 private int size;//元素个数 static class Node {//内部类,节点 public String key;原创 2021-04-17 22:02:03 · 258 阅读 · 0 评论 -
二叉搜索树及其实现(Java)
二叉排序树及其实现二叉排序树的定义它是一颗二叉树任一节点的左子树上的所有节点的值一定小于该节点的值任一节点的右子树上的所有节点的值一定大于该节点的值特点: 二叉排序树的中序遍历结果是有序的(升序)!实现一颗二叉排序树public class BST { static class Node { private int key; private Node left; private Node right; public原创 2021-04-15 08:37:30 · 223 阅读 · 0 评论 -
7大排序算法(Java版)
7大排序冒泡排序:总共有n个数,那么需要进行的比较次数就是n-1次(每一趟可以排好一个数,最终剩下一个的时候,就不需要在进行比较了)复杂度:时间: 最优:O(n)在已经有序的情况下,只需要扫描一遍最差/平均:O(n^2)空间:最优/最差:O(1)public static void bubbleSort(long[] array) { int length = array.length; //进行n-1趟冒泡 for (int i = 0; i < lengt原创 2021-04-14 11:14:00 · 136 阅读 · 0 评论 -
二叉树的一个实际应用-堆(Java)
堆认识了二叉树,也学会了一些遍历算法(DFS、BFS),可是二叉树可以干什么呢,那么其中一个实际应用他来了-堆(Heap).堆的特点堆是完全二叉树(逻辑上)。堆的底层实现,其实是顺序表(元素顺序为二叉树的层序遍历,可以抽象看成一颗树)。分为大顶堆/小顶堆两种。大顶堆:树中的每一个元素都是≥他的孩子们的。小顶堆:树中的每一个元素都是≤他的孩子们的。应用: 由于在大/小顶堆的每一个节点都是≥/≤他们的孩子们的。因此,堆可以在一组元素中,快速的定位最值(堆顶元素),大顶堆定位最大值,小原创 2021-04-10 16:51:10 · 947 阅读 · 0 评论 -
关于二叉树的一些算法(Java实现)
关于二叉树的一些算法1.二叉树的前序遍历(递归)class PreorderTraversal { public List<Integer> list = new ArrayList<>(); public List<Integer> preorderTraversal(TreeNode root) { if(root == null){//如果给定为空树,那么直接返回null即可 return new Ar原创 2021-04-02 22:40:31 · 257 阅读 · 0 评论 -
ArrayList 和 LinkedList
ArrayList 和 LinkedList首先在数据结构中,有线性结构和非线性结构。这里来讲一下线性结构,即线性表中的顺序表和链表。顺序表和链表在Java中分别有个代表,就是ArrayList和LinkedList。顺序表->ArrayList:顺序表:采用顺序存储结构(在内存中用一块地址连续的存储空间按顺序存储线性表的各个元素)的线性表称为顺序表。...原创 2021-03-26 22:40:40 · 132 阅读 · 0 评论 -
Java中的类和对象
Java中的类和对象引用什么是引用引用什么是引用我们知道Java中,有两大类数据类型:基本数据类型(byte,int,short,long,char,double,float,boolean)引用数据类型(String,Scanner,*[]数组等等)基本数据类型就是最简单的,这里就不多说了。那引用类型的数据,是如何使用的呢?这些引用类型的数据被定义出来之后,主要的内容都是不是存放在内存的栈区了,我们就不能去顺序的访问这一段内存了,那么我们该如何找到这一片区域呢?引用就此而生,它是一种原创 2021-01-24 23:29:11 · 189 阅读 · 0 评论