随笔 - 229
文章 - 0
评论 - 10
阅读 -
26万
随笔分类 - 数据结构与算法
红黑树代码实现
摘要:// 这里JDK中TreeMap红黑树自平衡的代码 private void fixAfterInsertion(TreeMap.Entry<K, V> x) { // 新增节点,直接置为RED x.color = RED; // 父节点是红色 while (x != null && x != ro
阅读全文
单链表之升级版按节点序号添加
摘要:该示例的代码是在前一篇的基础上进行修改的. public class SingleLinkedListDemo { public static void main(String[] args) { //先创建几个节点 Node node1 = new Node(1, "老子", "太上老君"); N
阅读全文
单链表之简单版
摘要:下面是个单链表,且无序的实现代码. 需要注意的是有个head节点, 该节点不存储数据,只是表示链表的头节点. public class SingleLinkedListDemo { public static void main(String[] args) { //先创建几个节点 Node nod
阅读全文
冒泡排序
摘要:冒泡排序的中心思想就是通过遍历找出数组中最小的数往前排. import java.util.Arrays; /** * 冒泡排序 * 该排序算法的核心就是循环遍历,两两比较,找出较小的那个数往前排 */ public class BubbleSort { public static void mai
阅读全文
队列篇之使用环型数组模拟一个队列
摘要:在上一篇随笔中使用数据模拟了一个队列,但是有缺陷, 数组只能使用一次,原因是index指针一直往上++, 不能回到数组之前的位置. ArrayBlockingQueue源码给出了一种实现方案, 它是在判断队列(数组)满了之后,直接将putIndex重置为0, 这样offer元素到队列时,又可以利用数
阅读全文
队列篇之使用数组模拟一个队列
摘要:队列是一个有序列表, 可以使用数组实现, 也可以使用链表实现 队列遵守先进先出的原则 1. 下面使用数组模拟一个队列 public class ArrayQueueDemo { public static void main(String[] args) { ArrayQueue queue = n
阅读全文
红黑树
摘要:常见算法与数据结构暴力:二分: 前提,有序 , 时间复杂度O(lgn) > 转换成数据结构: 二叉树(二叉查找树,二叉搜索, 二叉有序树)哈希: 最高效 , O(1), hash冲突 , jdk1.8 hashmap中的数据结构: 链表+红黑树(处理hash冲突的)插值索引: 搜索引擎 ,Lucen
阅读全文