数据结构与算法
文章平均质量分 57
黎梓鹏
通过 Java 去认识计算机的世界。。。
展开
-
大数相乘--Java实现
1. 问题描述给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是数字 0 本身。不能使用任何标准库的原创 2021-08-17 14:28:57 · 582 阅读 · 0 评论 -
时间复杂度分析
时间复杂度分析1. 常用的时间复杂度量级常数阶:O(1)对数阶:O(logN)线性阶:O(n)线性对数阶:O(nlogN)平方阶:O(n^2)立方阶:O(n^3)k次方阶:O(n^k)指数阶:O(2^n)阶乘:O(n!)2. 常数阶O(1)int a = 1;a += 2;int b = 2;3. 对数阶O(logN)int i = 1;while(i<n){ i = i*2;}4. 线性阶O(n)int count = 0;for(int原创 2021-08-01 21:42:06 · 139 阅读 · 0 评论 -
B树 B+树和红黑树详解
1. 树1.1 2-3树 为了保证二叉查找树的平衡性,允许树中的一个节点保存多 个键。1.1.1 2-3树的定义一棵2-3查找树要么为空树,要么满足如下两个条件;2-节点:含有一个键和两条链,左链指向的2-3树中的键都小于该节点,右链指向的2-3树中的键都大于该节点3-节点:含有两个键和三条链,左链指向的2-3树中的键都小于该节点,中链指向的2-3树中的键都位于该节点的两个键之间,右链指向的2-3树中的键都大于该节点1.1.2 查找 将二叉查找树的查找算法一般化,可以得原创 2021-07-27 21:51:26 · 1630 阅读 · 0 评论 -
反转链表合集
反转链表合集1. 反转整个链表package algorithm.list;/** * 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 */public class Reverse01 { public static void main(String[] args) { ListNode node01 = new ListNode(1); ListNode node02 = new ListNode(2); L原创 2021-07-24 01:18:04 · 103 阅读 · 0 评论 -
数据结构与算法之堆
数据结构之堆1. 堆排序堆排序是选择排序的一种。【选择排序:每次在待排序元素中选择最大/最小的一个元素,并加入到有序子序列中】1.1 什么是堆若n个关键字序列L[1…n]满足下面某一条规则,则称为堆【Heap】:若满足:L[i] >= L[zi] && L[i] >= L[2i+1],则称为大根堆【大顶堆】若满足:L[i] <= L[zi] && L[i] <= L[2i+1],则称为小根堆【小顶堆】1.2 二叉树的顺序原创 2021-05-20 17:27:02 · 216 阅读 · 0 评论