随笔分类 - 3 ★ 数据结构与算法
摘要:目录 1 Hash函数 2 Hash冲突 3 一致性hash hash表 1 hash函数 地址index=H(key)即根据key计算出应该存储地址的位置,而哈希表是基于哈希函数建立的一种查找表。 1.1 hash函数的性质 (1)输入域是无穷的,但是输出域是有限的 (2)不是随机产生的输出,相同
阅读全文
摘要:目录 1 生成图 图的表示 图表示有很多中,一般在面试中常见的如下: 代码实现 图的节点 //图的节点的定义 public class Node { //value的类型不一定是整型可以是泛型 public int value; //节点的入度 public int in; //节点的出度 publ
阅读全文
摘要:目录 1 Trie(字典树) 1 字典树的定义 2 字典树的实现 2 前缀树 3 并查集 1 并查集主要解决的问题 2 并查集的实现 1 并查集的简单实现 2 并查集实现 3 并查集的优化 4 最终实现 1 Trie(字典树) 1 字典树的定义 Trie:字典树、前缀树;其特点不再是普通树中的二叉结
阅读全文
摘要:目录 1 堆的基础概念 2 堆的实现 2.1 实现一个堆类 2.2 将无序数组调整为最大堆 1 堆的基础概念 最大堆:父节点要比每一个子节点的值都要大 最小堆:父节点要比每一个子节点的值都要小 堆可以看做是一个完全二叉树的数组对象 堆的出队入队时间复杂度如下图所示: 2 堆的实现 2.1 实现一个堆
阅读全文
摘要:目录 1 红黑树简介 2 红黑树的性质 3 红黑树操作 3.1 旋转操作 1.红黑树简介 红黑树是一种自平衡的二叉查找树,是一种高效的查找树。它可在 O(logN) 时间内完成查找、增加、删除等操作。因此,红黑树在业界应用很广泛,比如 Java 中的 TreeMap,JDK 1.8 中的 HashM
阅读全文
摘要:1 算法中数据规模概念 在1s内能够解决问题: O(n^2)的算法可以处理大约10^4级别的数据;O(n)的算法可以处理大约10^8级别的数据;O(nlogn)的算法可以处理大约10^8级别的数据。 2 空间复杂度 多开一个辅助的数组:O(n) ;多开一个辅助的二维数组:O(n^2);多开常数空间:
阅读全文
摘要:目录 0 二分搜索 1 二分搜索树 2 插入元素 3 查找元素 4 二分搜索树的遍历 深度优先 5 二分搜索树的层序遍历 广度优先 6 二分搜索树删除一个节点 1 二分搜索 这部分代码已经在数组中给出了详细的介绍,此处只给出实现代码: //在一个有效整数数组中根据二分法查找一个整数 public i
阅读全文
摘要:01 使用数组类实现栈 先创建了一个栈的接口,然后用数组类实现。这个数组类可以是自己写的也可以Java自带,其实自带的和自己写的一样。 栈接口 package cn.uestc.stack.practice01; public interface Stack<E> { //获得栈中元素个数 O(1)
阅读全文
摘要:目录 一些说明 代码准备 说明 (1)本部分排序算法均为升序 (2)x.compareTo(y) 返回值若大于0则x比y大,若等于0则相等 (3)抽象算法 public static void sort(Comparable[] a){ //排序方法 } private static boolean
阅读全文
摘要:1 简单数组类实现 简单封装数组类 package cn.uestc.practice1; //二次封装自己的数组 public class Array01 { private int[] data; //这个类所封装的数组 private int size; //即表示数组的实际长度,又指向实际元
阅读全文

浙公网安备 33010602011771号