数据结构与算法

贪心算法应用:装箱问题(FFD问题)详解

贪心算法应用:装箱问题(FFD问题)详解 1. 装箱问题概述装箱问题(Bin Packing Problem)是计算机科学和运筹学中的一个经典组合优化问题。问题的描述如下:给定一组物品,每个物品有一定的体积,以及若干容量相同的箱子,目标是用最少数量的箱子装下所有物品。 问题形式化描述 输入: n个物品&#xff

《【初阶数据结构】从 0 到 1 速通顺序表:C 语言实现 + 手撕算法(附完整代码)》

本文详细介绍了线性表中的顺序表的概念以及以及其的接口如:增删查找等关键操作,最后通过算法题来感受顺序表的细节 文章目录 一、线性表是什么? 二、顺序表的概念及分类   1.概念   2.分类 三、动态顺序表的实现   1. 顺序表的初始化   2.顺序表的扩容   3. 顺序的尾插    4. 顺序表的头插    5. 尾删

基础算法篇(4)(蓝桥杯常考点)—数据结构(进阶)

前言这期将会讲到基础算法篇里面的数据结构(进阶),主要包括单调栈,单调队列,并查集,扩展域并查集,带权并查集,字符串哈希,Trie树。 数据结构(进阶)正文 单调栈 里面存储的单增或者单减的栈 应用: 1.寻找当前元素左侧,离它最近

剑指offer第2版:链表系列

一、p58-JZ6 从尾到头打印链表(递归/栈)从尾到头打印链表_牛客题霸_牛客网 解法1、递归,每访问一个节点时,先递归输出它后面的节点,再输出该节点自身,但是这样的话可能导致函数的调用层级很深,从而导致函数调用栈溢出。class Solution { public: void print(

【初阶数据结构】森林里的树影 “堆” 光:堆

文章目录 1.堆的概念及结构 2.堆的接口实现 2.1 堆的初始化 2.2 堆的销毁 2.3 堆的交换 2.4 堆的向上调整 2.5 堆的插入 2.6 堆的向下调整 2.7 堆的删除 2.8 堆顶获取 2.9 堆的判空 2.10 堆的节点个数 2.11 堆的打印 2.12 堆的排序(向上建堆) 2.13 堆的排序(向下建堆)

【多目标进化算法】NSGA-II 算法(结合例子)

目录一、NSGA-II 是干什么的?二、通过一个简单例子来解释例子:挑选手机三、NSGA-II 解决步骤1. 初始化种群2. 非支配排序(Fast Non-dominated Sorting)3. 拥挤度距离(Crowding Distance)4. 选择 + 交叉 + 变异5. 合并种群、排序、更新四、最后结果(Pareto前沿)五、Python 简易实现一、NSGA-II 是干什么的?NSGA