
数据结构与算法
数据结构与算法,学习笔记
iblade
明年的某个时候,你会想着要是今天就行动了该多好!
展开
-
isListEqual方法比较
在未排序的情况下,为了确定一个列表是否包含另一个列表的所有元素(并且反之亦然),你可能需要对列表中的每个元素执行多次查找操作,这在最坏的情况下会带来O(n^2)的时间复杂度。当两个列表被排序后,我们可以保证相同的元素将会出现在相同的位置,这样就可以通过一个简单的顺序比较来确定两个列表是否相等,而不需要对每个元素进行多次查找。因此,在选择使用排序方法之前,请确保考虑到了你的具体需求,包括列表的大小、元素的类型以及是否需要保持元素的原始顺序。如果列表中的元素是唯一的且元素的顺序不重要,则可以考虑使用。原创 2024-04-19 18:10:22 · 502 阅读 · 0 评论 -
算法学习-二分法基础
最基本的二分法查找 因为我们初始化 right = nums.length - 1 所以决定了我们的「搜索区间」是 [left, right] 所以决定了while (left ‹= right) 同时也决定了 left = mid+1 和 right = mid-1 因为我们只需找到一个 target 的索引即可 所以当 nums[mid] == target 时可以立即返回 寻找左侧边界的二分查找: 因为我们初始化 right = nums.length 所以决定了我们的「搜索区间」是 [left原创 2022-03-12 20:46:03 · 243 阅读 · 0 评论 -
练习:java链表翻转
/** * @description :链表翻转 * Created by @author YongliangWang on 2021/4/2 15:23 */ public class DataStructureTest { public static void main(String[] args) { Node n1 = new Node("L"); Node n2 = new Node("I"); Node n3 = new Node(.原创 2021-04-16 10:39:37 · 106 阅读 · 0 评论 -
数据结构与算法:4栈和对列
文章目录栈的特性:后进者先出,先进者后出Java数组实现一个固定大小的栈:支持动态扩容的顺序栈栈的应用:函数调用栈:表达式求值中的栈栈在括号匹配中的应用浏览器前进后退的实现 栈的特性: 后进者先出,先进者后出 栈就像摞在圆筒里的一摞盘子。放盘子的时候,都是从下往上一个一个放;取的时候,我们也是从上往下一个一个地依次取,不能从中间任意抽出。后进者先出,先进者后出,这就是典型的“栈”结构。 栈是一种“...原创 2020-04-05 16:14:25 · 248 阅读 · 0 评论 -
数据结构与算法:3链表
将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指针,或者反过来说,指针中存储了这个变量的内存地址,指向了这个变量,通过指针就能找到这个变量。 ...原创 2020-04-05 14:58:59 · 318 阅读 · 1 评论 -
数据结构与算法:2.数组
算法:2.数组 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 关键词:线性表,连续内存空间 线性表: 每个线性表上的数据最多只有前和后两个方向。除了数组,链表、队列、栈等也是线性表结构。 而与它相对立的概念是非线性表,比如二叉树、堆、图等。之所以叫非线性,是因为,在非线性表中,数据之间并不是简单的前后关系。 连续的内存空间和相同类型的数据 这两个...原创 2020-04-04 22:54:17 · 245 阅读 · 0 评论 -
数据结构与算法:1.复杂度分析
复杂度分析: 数据结构和算法解决的两大问题:快和省。运行快,储存省。 复杂度分析是算法学习的精髓:时间复杂度,空间复杂度。 事后统计法有很大局限性: 测试结果依赖测试环境 测试结果受数据规模影响很大。 大O复杂度表示法: 例1: 1 int cal(int n) { 2 int sum = 0; 3 int i = 1; 4 for (; i <= n; ++i) {...原创 2020-04-04 20:05:37 · 975 阅读 · 0 评论