数据结构与算法
文章平均质量分 89
chen_zhixiu
这个作者很懒,什么都没留下…
展开
-
jdk1.8 CopyOnWriteArrayList学习笔记
1、addIfAbsent /** * Appends the element, if not present. * * @param e element to be added to this list, if absent * @return {@code true} if the element was added */ public boolean addIfAbsent(E e) { Object[] snapshot =原创 2020-08-18 12:21:22 · 240 阅读 · 0 评论 -
jdk1.8 hashmap resize方法笔记
final Node<K,V>[] resize() { Node<K,V>[] oldTab = table; int oldCap = (oldTab == null) ? 0 : oldTab.length; int oldThr = threshold; int newCap, newThr = 0; if (oldCap > 0) { if (oldCap >原创 2020-08-06 17:56:23 · 406 阅读 · 0 评论 -
jdk1.8 PriorityQueue源码学习笔记
一、堆在这里里面是一个逻辑上的概念,源码实现的是一个小顶堆,二、优先级队列的状态 ,如果是小顶堆 最小值是第一个元素 。如果以树形结构看这个实现,最小值是根元素,并且子节点大于等于父节点,三、看图理解更丝滑,实际上数据存放在一个数组中4...原创 2020-07-29 16:55:57 · 229 阅读 · 0 评论 -
基于堆的优先级队列
代码主要是看算法书结合自己理解实现public class MaxPQ<T extends Comparable> { private Entity[] data; private int n; public MaxPQ(int n){ this.data = new Entity[n + 1]; } public boolean isEmpty(){ return n == 0; } public原创 2020-06-08 17:21:45 · 425 阅读 · 0 评论 -
快速排序实现(java实现)
记录自己理解实现快速排序1、可运行的实现public class Quicksort1 { public static void main(String[] args) { Random random = new Random(); Entity[] entities = new Entity[60000000]; for (int i = 0;i < 60000000;++i){ Entity entity = ne原创 2020-05-18 10:51:11 · 259 阅读 · 0 评论 -
归并排序理解(java实现)
1、归并排序public class MergeSort { public static void main(String[] args) { Random random = new Random(); Entity[] entities = new Entity[30000000]; for (int i = 0;i < 30000000;++i){ Entity entity = new Entity(random.原创 2020-05-14 15:09:08 · 378 阅读 · 0 评论 -
希尔排序 与 直接插入排序运行比较
public class ShellSort { // is v < w ? private static boolean less(Comparable v, Comparable w) { return v.compareTo(w) < 0; } private static boolean isSorted(List<En...原创 2020-05-07 13:53:02 · 193 阅读 · 0 评论 -
插入排序
学习记录public class InsertSort { public static void main(String[] args) { Entity entity = new Entity(1); Entity entity1 = new Entity(71); Entity entity2 = new Entity(81); ...原创 2020-05-07 11:31:11 · 323 阅读 · 0 评论 -
基于栈(Stack)实现括号匹配
public class BracketMatching { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); List<Str...原创 2020-01-07 20:48:39 · 206 阅读 · 0 评论 -
BstTree增删查实现(java版本)
声明:代码是kevin-wayne大牛的,之所以贴出来作为自己学习的笔记记录,毕竟找到这个也是要花时间的。package com.abead.mybatistest.services;import java.util.NoSuchElementException;public class BstTree<Key extends Comparable<Key>, Valu...原创 2019-10-22 17:53:17 · 401 阅读 · 0 评论 -
二叉树的遍历的一点体会
1、 思路:二叉树遍历完全说是7种遍历方式假设左子树L根节点D右子树R则有下面的遍历方式DLR、LDR、LRD、DRL、RDL、RLD、层次遍历。我们一般习惯用DLR、LDR、LRD,先根、中根、后根遍历,遍历数一定要有递归的思维。以先根遍历为例,先根遍历就是先遍历根 再遍历左子树 再遍历右子树,遍历过根节点后,在遍历左子树的时候同样要遵循先根节点、再左子树再右子树的思路一直递归下去,直到叶子...原创 2019-09-09 21:42:05 · 1408 阅读 · 0 评论 -
数组移位实现java版
public static void main(String[] args) { //没有校验参数 默认左移实现的代码 int i = 0; int a[] =new int[500000000]; while (i < 500000000){ a[i] = i; i++; ...原创 2019-08-25 11:38:43 · 469 阅读 · 0 评论