技术栈
数据结构
澪吟
34 分钟前
数据结构
·
链表
数据结构入门:深入理解顺序表与链表
在计算机科学的世界里,数据结构是构建高效算法的基石,而线性表作为最基础、最常用的数据结构之一,更是每个程序员必须掌握的核心知识点。线性表看似简单,却衍生出了顺序表、链表、栈、队列等多种实用结构,其中顺序表与链表更是线性表的 “左右护法”—— 它们分别代表了 “连续存储” 与 “离散存储” 两种截然不同的设计思想,在实际开发中各有千秋。今天,我们就从线性表的基本概念出发,一步步拆解顺序表与链表的实现逻辑、核心差异,并结合面试高频考点,带你真正吃透这两种基础数据结构。
大数据张老师
1 小时前
数据结构
·
算法
·
排序算法
·
1024程序员节
数据结构——直接插入排序
在日常整理扑克牌时,我们通常会把抓到的新牌插入到已整理好的牌堆里,保持牌堆始终有序——直接插入排序的思想与此完全一致。它将待排序数组分为“已排序区间”和“未排序区间”,每次从“未排序区间”取出第一个元素,插入到“已排序区间”的合适位置,最终让整个数组有序。
给大佬递杯卡布奇诺
2 小时前
数据结构
·
c++
·
ffmpeg
·
音视频
FFmpeg 基本数据结构 AVPacket分析
AVPacket 是 FFmpeg 多媒体框架中承载压缩编码数据的核心容器,作为编解码器与解复用器/复用器之间的数据传输单元,它在多媒体处理流水线中扮演着至关重要的角色。 AVPacket 是 FFmpeg 中用于存储压缩后的编码数据(Encoded Data)的结构体。 它是多媒体处理流水线中解复用器(Demuxer)的输出和解码器(Decoder)的输入。 简单来说:
南方的狮子先生
2 小时前
开发语言
·
数据结构
·
c++
·
算法
·
排序算法
·
1024程序员节
【数据结构】从线性表到排序算法详解
特点:逻辑上相邻的元素在物理位置上也相邻优点:特点:用指针来表示元素之间的逻辑关系优点:核心思想:将待排序的元素插入到已排序序列的合适位置
极客智造
3 小时前
数据结构
·
算法
·
数学建模
编程世界的内在逻辑:深入探索数据结构、算法复杂度与抽象数据类型
想象一下,你要在图书馆的百万册藏书中快速找到特定的一本书。如果书籍随意堆放,你需要逐本检查;但如果按某种系统(如杜威十进制法)组织,你就能快速定位。这种"组织方式"就是数据结构,"查找过程"就是算法,而"效率评估"就是复杂度分析。
ゞ 正在缓冲99%…
4 小时前
数据结构
·
算法
·
leetcode
·
动态规划
leetcode375.猜数字大小II
区间dp问题
水蓝烟雨
5 小时前
数据结构
·
链表
0430. 扁平化多级双向链表
https://leetcode.cn/problems/flatten-a-multilevel-doubly-linked-list/
阿巴~阿巴~
5 小时前
数据结构
·
线程
·
进程
·
线程封装
·
页表机制
·
栈管理
Linux线程与进程的栈管理、页表机制及线程封装
目录一、线程栈管理进程(主线程)栈管理子线程栈管理二、页表和页表项页表标志位定义关键数据结构页表分配函数
立志成为大牛的小牛
6 小时前
数据结构
·
学习
·
程序人生
·
考研
·
算法
数据结构——三十一、最小生成树(王道408)
本文介绍了最小生成树(MST)的概念及其求解方法。生成树是包含图中所有顶点的极小连通子图,边数为顶点数减1。最小生成树是权值之和最小的生成树,可能不唯一但总权值唯一。文章重点讲解了Prim算法的实现步骤:从初始顶点出发,逐步选择权值最小的边将新顶点纳入生成树,直到所有顶点都被包含。算法通过维护lowCost数组记录各顶点到生成树的最小代价,并不断更新该数组来实现最小生成树的构建。适用于带权连通无向图的最小生成树求解。
JMzz
6 小时前
开发语言
·
数据结构
·
后端
·
算法
·
性能优化
·
rust
Rust 中的数据结构选择与性能影响:从算法复杂度到硬件特性 [特殊字符]
数据结构的选择是软件性能的基石。同样的算法逻辑,使用不同的数据结构可能导致数量级的性能差异。Rust 标准库和生态系统提供了丰富的数据结构选项,从基础的 Vec、HashMap 到专用的 BTreeMap、VecDeque,每种结构都有其独特的性能特征和适用场景。然而,教科书上的大 O 分析往往忽略了现代硬件的复杂性:缓存层次结构、分支预测、内存预取等因素在实际性能中扮演关键角色。本文将深入探讨 Rust 数据结构选择的系统化方法论,结合理论分析与实践测量,帮助开发者做出明智的设计决策。
星空露珠
8 小时前
数据结构
·
数据库
·
算法
·
游戏
·
lua
数独生成题目lua脚本
--获取某元素在表中的位置 local function isInside(value,tab) for a,v in ipairs(tab) do if v==value then return a end end return -1 end
给大佬递杯卡布奇诺
8 小时前
数据结构
·
c++
·
ffmpeg
·
音视频
FFmpeg 基本数据结构 URLContext分析
URLContext是FFmpeg I/O子系统的核心连接对象,在协议处理流程中扮演着至关重要的角色。它作为URLProtocol和AVIOContext之间的桥梁,管理单个协议连接的生命周期和状态数据。 具体位置如下: 具体代码分析如下:
极客智造
17 小时前
数据结构
·
链表
线性数据结构深度解析:数组、链表、栈与队列的实现与应用
数组是最基础的线性数据结构,其核心在于连续内存分配。这种存储方式带来了独特的性能特征:数组操作的复杂度分析:
Zhu_S W
19 小时前
数据结构
·
数据库
·
redis
Redis跳表:高效有序数据结构的深度剖析
在Redis的众多数据结构中,跳表(Skip List)是一个相对低调但极其重要的数据结构。它主要用于实现有序集合(Sorted Set)的底层存储,为Redis提供了高效的范围查询和排序功能。本文将深入探讨Redis中跳表的原理、实现和应用。
是那盏灯塔
19 小时前
数据结构
·
c++
·
算法
·
动态规划
【算法】——动态规划之01背包问题
目录一、什么是背包问题?二、例题1.【模板】01背包问题2. 分隔等和子集3. 目标和4. 最后一块石头的重量Ⅱ
jinmo_C++
19 小时前
java
·
数据结构
·
算法
数据结构_深入理解堆(大根堆 小根堆)与优先队列:从理论到手撕实现
通俗点来说:根节点值最大,且每个父节点值 ≥ 子节点值的完全二叉树。最大堆(又称大根堆)是二叉堆的两种形式之一,其根结点的关键字为堆内所有结点的最大值,且任一子树同样满足该性质。作为完全二叉树,最大堆的结构特性要求每个父节点的值不小于其子节点,采用数组存储以实现高效的元素访问与操作。 最大堆源于二叉堆的理论体系,早期基于完全二叉树实现父子节点有序性维护。后续发展为k叉堆等变体以提高特定场景的操作效率。其核心操作包含插入元素时的上浮调整与删除堆顶时的下沉调整。该数据结构被广泛应用于优先队列实现,支撑堆排序算
Excuse_lighttime
20 小时前
java
·
数据结构
·
算法
·
leetcode
·
eclipse
·
排序算法
排序数组(快速排序算法)
目录一:题目链接二:题目思路区域划分:递归执行:三:代码实现这题主要由两大思路一起解决,一是 “区域划分” ,二是 “递归执行”,现在分别解释这两个思路。
南方的狮子先生
21 小时前
数据结构
·
c++
·
学习
·
算法
·
排序算法
·
1024程序员节
【数据结构】(C++数据结构)查找算法与排序算法详解
二分查找是最基本的有序向量查找算法,时间复杂度为O(log n)。关键点:插值查找适用于均匀分布的有序向量,通过线性插值预测目标位置。
学编程就要猛
1 天前
java
·
开发语言
·
数据结构
数据结构初阶:Java中的ArrayList
ArrayList的的底层是一个顺序表。顺序表是用一段地址连续的单元来依次存储数据元素的线性结构,他一般采用数组进行存储。可以在顺序表上进行增删改查。
试试勇气
1 天前
数据结构
算法工具箱之双指针
双指针是算法中一种常用的技巧,特别适用于数组和链表类问题。它的核心思想是使用两个指针以不同的策略遍历数据结构,从而高效地解决问题。