随笔分类 -  3 ★ 数据结构与算法

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