当前位置: 首页 > news >正文

WPF框架中常用算法

WPF框架中常用算法与实现

一、排序算法

1. 快速排序 (Quick Sort)

​应用场景​​:大数据集合排序、性能敏感场景

 
public static void QuickSort(IList<int> list, int left, int right)
{if (left < right){int pivotIndex = Partition(list, left, right);QuickSort(list, left, pivotIndex - 1);QuickSort(list, pivotIndex + 1, right);}
}private static int Partition(IList<int> list, int left, int right)
{int pivot = list[right];int i = left - 1;for (int j = left; j < right; j++){if (list[j] <= pivot){i++;Swap(list, i, j);}}Swap(list, i + 1, right);return i + 1;
}private static void Swap(IList<int> list, int i, int j)
{int temp = list[i];list[i] = list[j];list[j] = temp;
}

​WPF中使用示例​​:

 
// 在ViewModel中
public void SortData()
{var data = new List<int> { 5, 2, 9, 1, 5, 6 };QuickSort(data, 0, data.Count - 1);// 更新UI绑定集合MyDataCollection = new ObservableCollection<int>(data);
}

2. 归并排序 (Merge Sort)

​应用场景​​:稳定排序需求、外部排序

 
public static void MergeSort(IList<int> list)
{if (list.Count <= 1) return;int mid = list.Count / 2;var left = list.Take(mid).ToList();var right = list.Skip(mid).ToList();MergeSort(left);MergeSort(right);Merge(list, left, right);
}private static void Merge(IList<int> list, IList<int> left, IList<int> right)
{int i = 0, j = 0, k = 0;while (i < left.Count && j < right.Count){if (left[i] <= right[j])list[k++] = left[i++];elselist[k++] = right[j++];}while (i < left.Count)list[k++] = left[i++];while (j < right.Count)list[k++] = right[j++];
}

二、搜索算法

1. 二分查找 (Binary Search)

​应用场景​​:有序集合快速查找

 
public static int BinarySearch(IList<int> list, int target)
{int left = 0, right = list.Count - 1;while (left <= right){int mid = left + (right - left) / 2;if (list[mid] == target)return mid;else if (list[mid] < target)left = mid + 1;elseright = mid - 1;}return -1; // 未找到
}

​WPF中使用示例​​:

 
// 在ViewModel中
public int FindItem(int target)
{var sortedData = MyDataCollection.OrderBy(x => x).ToList();int index = BinarySearch(sortedData, target);if (index >= 0)return sortedData[index];return -1;
}

2. 深度优先搜索 (DFS)

​应用场景​​:树形结构遍历、路径查找

 
public class TreeNode
{public int Value { get; set; }public List<TreeNode> Children { get; } = new List<TreeNode>();
}public void DFS(TreeNode node, Action<TreeNode> action)
{if (node == null) return;action(node);foreach (var child in node.Children){DFS(child, action);}
}

​WPF中使用示例​​:

 
// 在ViewModel中
private void TraverseTree()
{var root = GetTreeRoot(); // 获取树根节点DFS(root, node => {// 处理每个节点Debug.WriteLine($"Visited node with value: {node.Value}");});
}

三、图形算法

1. A*寻路算法

​应用场景​​:游戏路径规划、导航系统

 
public class Node : IComparable<Node>
{public Point Position { get; }public Node Parent { get; set; }public double GCost { get; set; } // 从起点到当前节点的成本public double HCost { get; set; } // 从当前节点到目标的估计成本public double FCost => GCost + HCost;public Node(Point position){Position = position;}public int CompareTo(Node other){return FCost.CompareTo(other.FCost);}
}public List<Point> FindPath(Grid grid, Point start, Point target)
{var openSet = new PriorityQueue<Node>();var closedSet = new HashSet<Point>();var startNode = new Node(start) { GCost = 0, HCost = Heuristic(start, target) };openSet.Enqueue(startNode);while (openSet.Count > 0){var currentNode = openSet.Dequeue();if (currentNode.Position == target)return RetracePath(startNode, currentNode);closedSet.Add(currentNode.Position);foreach (var neighbor in GetNeighbors(grid, currentNode.Position)){if (closedSet.Contains(neighbor))continue;var neighborNode = new Node(neighbor){GCost = currentNode.GCost + 1,HCost = Heuristic(neighbor, target),Parent = currentNode};if (!openSet.Contains(neighborNode) || neighborNode.GCost < GetNodeInOpenSet(openSet, neighbor).GCost){openSet.Enqueue(neighborNode);}}}return null; // 无路径
}private double Heuristic(Point a, Point b)
{return Math.Abs(a.X - b.X) + Math.Abs(a.Y - b.Y); // 曼哈顿距离
}private List<Point> RetracePath(Node startNode, Node endNode)
{var path = new List<Point>();var currentNode = endNode;while (currentNode != startNode){path.Add(currentNode.Position);currentNode = currentNode.Parent;}path.Reverse();return path;
}

​WPF中使用示例​​:

 
// 在游戏ViewModel中
private List<Point> CalculatePath(Point start, Point target)
{var grid = GameGrid; // 游戏网格var path = Pathfinding.FindPath(grid, start, target);// 更新UI显示路径PathVisualization = new ObservableCollection<Point>(path);return path;
}

2. 力导向布局算法

​应用场景​​:关系图可视化、社交网络图

 
public class ForceDirectedLayout
{private const double Repulsion = 1000;private const double SpringLength = 50;private const double SpringConstant = 0.1;private const double Damping = 0.9;public void UpdatePositions(List<Node> nodes, List<Edge> edges, double deltaTime){// 计算斥力foreach (var node1 in nodes){node1.Velocity = new Vector(0, 0);foreach (var node2 in nodes){if (node1 == node2) continue;var delta = node2.Position - node1.Position;var distance = delta.Length;if (distance > 0){var force = Repulsion / (distance * distance);node1.Velocity += delta.Normalize() * force / node1.Mass;}}}// 计算弹簧力foreach (var edge in edges){var delta = edge.To.Position - edge.From.Position;var distance = delta.Length;var displacement = (distance - SpringLength) * SpringConstant;edge.From.Velocity -= delta.Normalize() * displacement / edge.From.Mass;edge.To.Velocity += delta.Normalize() * displacement / edge.To.Mass;}// 更新位置foreach (var node in nodes){node.Velocity *= Damping;node.Position += node.Velocity * deltaTime;// 边界检查node.Position = new Point(Math.Max(0, Math.Min(node.Position.X, LayoutWidth)),Math.Max(0, Math.Min(node.Position.Y, LayoutHeight)));}}
}

​WPF中使用示例​​:

 
// 在图表ViewModel中
private void StartLayoutAnimation()
{var layout = new ForceDirectedLayout();var timer = new DispatcherTimer(TimeSpan.FromMilliseconds(16), DispatcherPriority.Render, (s, e) => UpdateLayout(layout), Dispatcher);timer.Start();
}private void UpdateLayout(ForceDirectedLayout layout)
{layout.UpdatePositions(Nodes, Edges, 0.016); // 约60FPS// 更新UI绑定OnPropertyChanged(nameof(Nodes));OnPropertyChanged(nameof(Edges));
}

四、数据结构算法

1. 前缀树(Trie)实现

​应用场景​​:自动补全、拼写检查

 
public class TrieNode
{public Dictionary<char, TrieNode> Children { get; } = new Dictionary<char, TrieNode>();public bool IsEndOfWord { get; set; }
}public class Trie
{private readonly TrieNode _root = new TrieNode();public void Insert(string word){var node = _root;foreach (var c in word){if (!node.Children.ContainsKey(c))node.Children[c] = new TrieNode();node = node.Children[c];}node.IsEndOfWord = true;}public bool Search(string word){var node = SearchPrefix(word);return node != null && node.IsEndOfWord;}public bool StartsWith(string prefix){return SearchPrefix(prefix) != null;}private TrieNode SearchPrefix(string prefix){var node = _root;foreach (var c in prefix){if (!node.Children.TryGetValue(c, out node))return null;}return node;}
}

​WPF中使用示例​​:

 
// 在搜索ViewModel中
private Trie _trie = new Trie();public void BuildDictionary(IEnumerable<string> words)
{foreach (var word in words){_trie.Insert(word.ToLower());}
}public IEnumerable<string> GetSuggestions(string prefix)
{var suggestions = new List<string>();var node = _trie.SearchPrefix(prefix.ToLower());if (node != null){CollectWords(node, prefix, suggestions);}return suggestions;
}private void CollectWords(TrieNode node, string prefix, List<string> suggestions)
{if (node.IsEndOfWord)suggestions.Add(prefix);foreach (var kvp in node.Children){CollectWords(kvp.Value, prefix + kvp.Key, suggestions);}
}

2. 并查集(Disjoint Set Union)

​应用场景​​:连通性检测、最小生成树

 
public class DisjointSet
{private readonly int[] _parent;private readonly int[] _rank;public DisjointSet(int size){_parent = Enumerable.Range(0, size).ToArray();_rank = new int[size];}public int Find(int x){if (_parent[x] != x){_parent[x] = Find(_parent[x]); // 路径压缩}return _parent[x];}public void Union(int x, int y){int rootX = Find(x);int rootY = Find(y);if (rootX != rootY){// 按秩合并if (_rank[rootX] > _rank[rootY])_parent[rootY] = rootX;else if (_rank[rootX] < _rank[rootY])_parent[rootX] = rootY;else{_parent[rootY] = rootX;_rank[rootX]++;}}}
}

​WPF中使用示例​​:

 
// 在图形编辑ViewModel中
private DisjointSet _dsu;public void InitializeGraph(int nodeCount)
{_dsu = new DisjointSet(nodeCount);
}public void ConnectNodes(int node1, int node2)
{_dsu.Union(node1, node2);// 更新连接可视化UpdateConnections();
}public bool AreConnected(int node1, int node2)
{return _dsu.Find(node1) == _dsu.Find(node2);
}

五、优化与性能考虑

  1. ​算法选择原则​​:

    • 数据量小:简单算法更易维护
    • 数据量大:优先考虑O(n log n)或更好的算法
    • 实时性要求高:选择常数时间或线性时间算法
  2. ​WPF特定优化​​:

    • 避免在UI线程执行复杂计算
    • 使用并行算法处理大数据集
    • 对频繁更新的数据使用增量更新而非全量重绘
  3. ​内存管理​​:

    • 及时释放不再使用的对象引用
    • 对大型数据结构考虑分块加载
    • 使用对象池重用对象实例

通过合理选择和应用这些算法,可以显著提升WPF应用程序的性能和用户体验。在实际项目中,应根据具体需求和数据特点选择最合适的算法实现。

相关文章:

WPF框架中常用算法

WPF框架中常用算法与实现 一、排序算法 1. 快速排序 (Quick Sort) ​​应用场景​​&#xff1a;大数据集合排序、性能敏感场景 public static void QuickSort(IList<int> list, int left, int right) {if (left < right){int pivotIndex Partition(list, left, r…...

【Java函数式编程-58】Java函数式编程深度解析

函数式编程(Functional Programming)作为一种编程范式&#xff0c;近年来在Java生态中获得了越来越多的关注和应用。自Java 8引入Lambda表达式和Stream API以来&#xff0c;函数式编程风格在Java开发中逐渐普及。本文将深入探讨Java中函数式编程的核心概念、实践技巧以及在实际…...

解决vscode cmake提示检测到 #include 错误

一、问题 cmake已经包含了动态库文件&#xff0c;依然提示“检测到 #include 错误。请更新 includePath。” 二、解决方案 Ctrl Shift P进入CPP编辑配置&#xff0c;然后在JSON中加入下面一行&#xff1a; "configurationProvider": "ms-vscode.cmake-tools&…...

Microsoft .NET Framework 4.8 离线安装包 下载

简介Microsoft .NET Framework 4.8 是对 Microsoft .NET Framework 4、4.5、4.5.1、4.5.2、4.6、4.6.1、4.6.2、4.7、4.7.1 和 4.7.2 的高度兼容的就地更新。 脱机程序包可用于因无法连接 Internet 而导致 Web 安装程序无法使用的情况。 此包比 Web 安装程序大&#xff0c;并且…...

部署若依项目到服务器遇到的问题

以下是本次部署遇到的问题及解决方法 1、问题&#xff1a;docker一直出现“&#xff1e; ERROR [internal] load metadata for docker.io/library/xxx“的问题 ERROR: failed to solve: openjdk:8-jdk-alpine: failed to resolve source metadata for docker.io/libran y/ope…...

Elasticsearch--自带“搜索引擎“的数据库

一、核心原理 1. 倒排索引&#xff08;Inverted Index&#xff09; 基本概念 将文档中的每个词条&#xff08;term&#xff09;映射到包含它的文档列表上&#xff0c;正如图书馆目录将关键词映射到书籍编号。工作流程 分词&#xff08;Analysis&#xff09;&#xff1a;文本切…...

malloc的实现原理

malloc 是 C 语言中动态内存分配的核心函数&#xff0c;其实现原理涉及操作系统内存管理、数据结构和算法设计。以下是其核心实现原理的简化分析&#xff1a; 1. 内存池管理 基本思想&#xff1a;malloc 通过管理一个 内存池&#xff08;堆&#xff09;动态分配内存。操作系统…...

垃圾收集GC的基本理解

垃圾收集的基本理解 GC 的基本算法 标记清除 从根开始将可能被引用的对象用递归的方式进行标记&#xff08;标记阶段&#xff09;&#xff0c;然后再从根开始将全部对象按顺序扫描一遍&#xff0c;将没有被标记的对象进行回收&#xff08;清除阶段&#xff09;。 大多数情况…...

JVM——Java的基本类型的实现

Java 基本类型在 JVM 中的实现 Java 作为一种广泛使用的编程语言&#xff0c;其在虚拟机&#xff08;JVM&#xff09;上的实现细节对于开发者来说至关重要。本文将详细讲解 Java 基本类型在 JVM 中的实现&#xff0c;去深入理解 Java 编程语言的底层工作机制。 Java 基本类型…...

临床回归分析及AI推理

在医疗保健决策越来越受数据驱动的时代&#xff0c;回归分析已成为临床医生和研究人员最强大的工具之一。无论是预测结果、调整混杂因素、建模生存时间还是理解诊断性能&#xff0c;回归模型都为将原始数据转化为临床洞察提供了统计学基础。 AI推理 然而&#xff0c;随着技术…...

Ubuntu 22.04 的 ROS 2 和 Carla 设置指南(其一)

重点介绍适用于 Ubuntu 22.04 的全面 ROS 2 和 Carla 设置指南。我们将首先安装 Terminator 终端&#xff0c;然后安装 ROS 2 依赖项&#xff0c;然后继续安装 ROS 2 Humble。接下来&#xff0c;我们将介绍如何在 Ubuntu 22.04 上安装 Carla&#xff0c;最后通过设置 Carla ROS…...

声明:个人从未主动把文章设置为仅vip可读

之前一直在公司忙就没看csdn这边&#xff0c;前几天朋友看到我的博客是仅vip可读我才发现这个 给我气笑了。。。不反馈默认同意。。。。 现在都已经改回来 写文章的初衷就是记录一下自己的学习过程&#xff0c;本来就是一些偏基础类的东西&#xff0c;还需要去买vip才能看就太…...

【大模型系列篇】Qwen3开源全新一代大语言模型来了,深入思考,更快行动

Qwen3开源模型全览 Qwen3是全球最强开源模型&#xff08;MoEDense&#xff09; Qwen3 采用混合专家&#xff08;MoE&#xff09;架构&#xff0c;总参数量 235B&#xff0c;激活仅需 22B。 Qwen3 预训练数据量达 36T&#xff0c;并在后训练阶段多轮强化学习&#xff0c;将非思…...

DeepSeek-Prover-V2-671B 简介、下载、体验、微调、数据集:专为数学定理自动证明设计的超大垂直领域语言模型(在线体验地址)

DeepSeek-Prover-V2-671B 最新发布&#xff1a;专为数学定理自动证明设计的超大语言模型 体验地址&#xff1a;Hugging Face 在线体验 推荐入口&#xff1a;Novita 平台直达链接&#xff08;含邀请码&#xff09; 一、模型简介 DeepSeek-Prover-V2-671B 是 DeepSeek 团队于 2…...

Gupta-Sproull 抗据此画线算法

本文源自于&#xff1a;从https://www.inf.ed.ac.uk/teaching/courses/cg/lectures/cg4_2012.pdf Gupta-Sproull是在Brensenham的画线算法基础上得到。 为了防止之前的链接失效&#xff0c;特地搬运一下...

idea写spark程序

使用IntelliJ IDEA编写Spark程序的完整指南 一、环境准备 安装必要软件 IntelliJ IDEA (推荐Ultimate版&#xff0c;Community版也可) JDK 8或11 Scala插件(在IDEA中安装) Spark最新版本(本地开发可以用embedded模式) 创建项目 打开IDEA → New Project 选择"Maven…...

视觉问答论文解析:《Skywork R1V2: Multimodal Hybrid Reinforcement Learning for Reasoning》

《Skywork R1V2: Multimodal Hybrid Reinforcement Learning for Reasoning》论文解析 一、研究背景与动机 近年来&#xff0c;“慢思考”多模态模型&#xff08;如 OpenAI-o1、GeminiThinking、Kimi-1.5 和 Skywork-R1V&#xff09;在数学和科学领域的复杂推理任务中取得了显…...

修改linux账号名

修改linux账号名 结论是步骤1.临时创建一个辅助账户执行操作2.注销当前账户&#xff0c;登录 tempadmin 用户。3.使用它修改 旧用户名olduser&#xff1a;4.&#xff08;可选&#xff09;删除临时用户&#xff1a; 结论是 不可以直接修改,要么需要创建一个临时用户来打辅助. …...

计算机图形学:(二)MVP变换示例

前言 当在阅读计算机图形学系列的书籍时&#xff0c;会发现大部分图书每章内容都如出一辙。从个人实际体会来讲&#xff0c;虽然能理解书中大部分的知识&#xff0c;但到了实际使用时却有点抓耳挠腮。因此&#xff0c;在写了计算机图形学&#xff1a;&#xff08;一&#xff09…...

PostgreSQL中的SSL(2)

PGSQL数据库的默认隔离级别是读提交&#xff0c;并且同时支持可重复读和序列化模式。但是在9.1之前的版本中&#xff0c;序列化模式是采用快照隔离来实现&#xff0c;并非是真正的序列化模式。 这样的话就会存在一个问题&#xff0c;那就是写偏序&#xff08;Write Skew&#…...

Linux 部署以paddle Serving 的方式部署 PaddleOCR CPU版本

强烈建议您在Docker内构建Paddle Serving&#xff0c;更多镜像请查看Docker镜像列表。 提示-1&#xff1a;Paddle Serving项目仅支持Python3.6/3.7/3.8/3.9&#xff0c;接下来所有的与Python/Pip相关的操作都需要选择正确的Python版本。 提示-2&#xff1a;以下示例中GPU环境均…...

苏德战争前期苏联损失惨重(马井堂)

苏德战争前期&#xff08;1941年6月22日德国发动“巴巴罗萨行动”至1941年底至1942年初&#xff09;是苏联在二战中损失最惨重的阶段之一。以下是主要方面的损失概述&#xff1a; ‌一、军事损失‌ ‌人员伤亡与俘虏‌ 至1941年底&#xff0c;苏军伤亡约‌300万人‌&#xff…...

SI5338-EVB Usage Guide(LVPECL、LVDS、HCSL、CMOS、SSTL、HSTL)

目录 1. 简介 1.1 EVB 介绍 1.2 Si5338 Block Diagram 2. EVB 详解 2.1 实物图 2.2 基本配置 2.2.1 Universal Pin 2.2.2 IIC I/F 2.2.3 Input Clocks 2.2.4 Output Frequencies 2.2.5 Output Driver 2.2.6 Freq and Phase Offset 2.2.7 Spread Spectrum 2.2.8 快…...

LeetCode LCP40 心算挑战题解

看似一道简单的题目&#xff0c;实则不然&#xff0c;没有看评论的话&#xff0c;实在想不出来怎么写。 现在则由我来转述思想供大家参考理解&#xff0c;还是先给出示例&#xff0c;供大家更好的理解这个题目。 输入&#xff1a;cards [1,2,8,9], cnt 3输出&#xff1a;18解…...

Smart Link+Monitor Link组网

1.技术背景及原理 一般情况下&#xff0c;Smart Link只能感知与其接口直连的链路故障。将Monitor Link配置在Smart Link的上游设备上&#xff0c;可使Smart Link迅速感知上游链路故障&#xff0c;进行链路切换。Smart Link与Monitor Link配合使用&#xff0c;扩大了Smart Link…...

【计算机网络】​TCP(传输控制协议)套接字,多线程远程执行命令编程​

&#x1f4da; 博主的专栏 &#x1f427; Linux | &#x1f5a5;️ C | &#x1f4ca; 数据结构 | &#x1f4a1;C 算法 | &#x1f152; C 语言 | &#x1f310; 计算机网络 上篇文章&#xff1a;UDP套接字编程&#xff08;英汉字典以及多线程聊天室编写&#xff09…...

PostgreSQL 中 VACUUM FULL 对索引的影响

PostgreSQL 中 VACUUM FULL 对索引的影响 是的&#xff0c;VACUUM FULL 会重建表上的所有索引。这是它与普通 VACUUM 命令的一个重要区别。 一、VACUUM FULL 的工作原理 表重建过程&#xff1a; 创建表的全新副本只将有效数据写入新存储删除原始表文件将新文件重命名为原表名…...

DeepSeek本地部署及WebUI可视化完全指南

以下是为您整理的DeepSeek本地部署及WebUI可视化完全指南&#xff0c;整合了官方文档及社区实践的最佳方案&#xff1a; 一、环境准备 1. 硬件需求 CPU&#xff1a;推荐支持AVX2指令集的Intel i7或AMD Ryzen 7及以上处理器 。 GPU&#xff08;可选但推荐&#xff09;&#xf…...

大模型时代的新燃料:大规模拟真多风格语音合成数据集

以大模型技术为核心驱动力的人工智能变革浪潮中&#xff0c;语音交互领域正迎来广阔的成长空间&#xff0c;应用场景持续拓宽与延伸。 其中&#xff0c;数据作为驱动语音大模型进化的关键要素&#xff0c;重要性愈发凸显。丰富多样的高质量数据能够让语音大模型充分学习到语音…...

单体项目到微服务的架构演变与K8s发展是否会代替微服务

单体项目到微服务的架构演变与K8s发展是否会代替微服务 在互联网大厂Java求职者的面试中&#xff0c;经常会被问到关于单体项目到微服务的架构演变以及Kubernetes&#xff08;k8s&#xff09;的发展是否会代替微服务的相关问题。本文通过一个故事场景来展示这些问题的实际解决…...

AI驱动的决策智能系统(AIDP)和自然语言交互式分析

在当今快速变化的商业环境中&#xff0c;以下几个企业级系统领域最有可能成为新的热点&#xff0c;其驱动力来自数字化转型加速、AI技术爆发、全球化协同需求以及ESG&#xff08;环境、社会、治理&#xff09;合规压力的叠加 1. AI驱动的决策智能系统&#xff08;AIDP&#xf…...

kubernetes》》k8s》》Service 、Ingress 区别

K8S>>Service 资料 K8S >>Ingress 资料 Ingress VS Service 物理层数据链路层网络层传输层会话层表示层应用层 Ingress是一种用于暴露HTTP和HTTPS路由的资源&#xff0c;它提供了七层&#xff08;应用层&#xff09;的负载均衡功能。Ingress可以根据主机名、…...

全面接入!Qwen3现已上线千帆

百度智能云千帆正式上线通义千问团队开源的最新一代Qwen3系列模型&#xff0c;包括旗舰级MoE模型Qwen3-235B-A22B、轻量级MoE模型Qwen3-30B-A3B。千帆大模型平台开源模型进一步扩充&#xff0c;以多维开放的模型服务、全栈模型开发、应用开发工具链、多模态数据治理及安全的能力…...

Python-日志检测异常行为的详细技术方案

以下是根据行为日志检测异常行为的详细技术方案&#xff0c;涵盖数据收集、特征工程、模型选择、部署与优化的全流程&#xff1a; 1. 数据收集与预处理 1.1 数据来源 行为日志通常包括以下类型&#xff1a; 用户行为日志&#xff1a;点击、登录、交易、页面停留时间等。系统…...

DeepSeek-Prover-V2-671B最新体验地址:Prover版仅适合解决专业数学证明问题

DeepSeek-Prover-V2-671B最新体验地址&#xff1a;Prover版仅适合解决专业数学证明问题 DeepSeek 团队于 2025 年 4 月 30 日正式在Hugging Face开源了其重量级新作 —— DeepSeek-Prover-V2-671B&#xff0c;这是一款专为解决数学定理证明和形式化推理任务而设计的超大规模语…...

Java写数据结构:队列

1.概念&#xff1a; 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff0c;队列具有先进先出FIFO(First In First Out) 入队列&#xff1a;进行插入操作的一端称为队尾&#xff08;Tail/Rear&#xff09; 出队列&#xf…...

LeetCode 2905 找出满足差值条件的下标II 题解

示例 nums [8, 3, 12, 5, 1, 10, 7, 13] indexDifference 3 valueDifference 6答案 [maxIdx, j] [0, 4]我的思路是直接枚举写&#xff0c;但这题是中等题&#xff0c;一定不会让你好过的&#xff0c;所以也是喜提了超时&#xff0c;先说一下我的做题思路吧。 其实很简单就…...

【思考】欧洲大停电分析

当地时间4月28日中午&#xff0c;西班牙和葡萄牙发生了大规模停电事故&#xff0c;两国多个地区的电力供应中断&#xff0c;波及超过5000万伊比利亚半岛民众&#xff0c;交通、通信、医疗等关键领域受到影响&#xff0c;马德里网球公开赛因停电被迫暂停&#xff0c;周边法国、意…...

[论文精读]Agent综述—— A survey on large language model based autonomous agents

A survey on large language model based autonomous agents ⏲️年份: 2024 &#x1f440;期刊: Frontiers of Computer Science &#x1f331;影响因子:3.4 &#x1f4da;数字对象唯一标识符DOl: 10.1007/s11704-024-40231-1 &#x1f935;作者: Wang Lei,Ma Chen,Feng X…...

金融风控的“天眼”:遥感技术的创新应用

在金融市场的复杂博弈中&#xff0c;风险管控一直是金融机构的核心竞争力。然而&#xff0c;传统的风控手段在应对现代金融市场的快速变化时&#xff0c;往往显得捉襟见肘。 如今&#xff0c;遥感技术的创新应用为金融风控带来了全新的视角和手段。星图云开放平台的遥感金融立体…...

SpringMVC知识点总结(速查速记)

文章目录 前言1、MVC是什么2、SpringMVC是什么3、SpringMVC请求流程 && 环境搭建3.1 SpringMVC请求流程3.2 搭建环境3.2.1开发环境3.2.2 环境配置步骤 4. url地址映射 && 参数绑定4.1 url地址映射之RequestMapping①、映射单个url②、映射多个url③、映射url到…...

配置 Odoo 的 PostgreSQL 数据库以允许远程访问的步骤

1. 修改 PostgreSQL 配置文件 a. 修改 postgresql.conf 找到 PostgreSQL 的主配置文件 postgresql.conf&#xff0c;通常位于 /etc/postgresql/<版本号>/main/ 目录下。修改 listen_addresses 项的值为 *&#xff0c;表示允许来自任何 IP 地址的连接&#xff1a; sudo…...

涨薪技术|0到1学会性能测试第42课-apache监控与调优

前面的推文我们学习了操作系统性能监控与调优知识,如CPU、内存、磁盘、网络监控等,今天开始分享中间件apache监控与调优知识,后续文章都会系统分享干货,带大家从0到1学会性能测试! Apache是世界上使用最多的web服务器软件一种,它可以运行在几乎所有广泛使用的计算机平台上…...

【学习笔记】Shell编程--Bash变量

变量类型说明环境变量 与Shell的执行环境相关的一些变量。如PATH&#xff0c;HOME等&#xff0c;用户可重新定义。 一、环境变量的创建&#xff1a;export&#xff0c; export ABCD2 二、环境变量的查看 使用echo命令查看单个环境变量。如&#xff1a; echo $PATH 使用printenv…...

SpringBoot+Redis全局唯一ID生成器

&#x1f4e6; 优雅版 Redis ID 生成器工具类 支持&#xff1a; 项目启动时自动初始化起始值获取自增 ID 方法yml 配置化起始值可灵活扩展多业务线 ID &#x1f4cc; application.yml 配置 id-generator:member-start-value: 1000000000&#x1f4cc; 配置类&#xff1a;IdG…...

micro-app前端微服务原理解析

一、核心设计思想 基于 WebComponents 的组件化渲染 micro-app 借鉴 WebComponents 的 CustomElement 和 ShadowDom 特性&#xff0c;将子应用封装为类似 WebComponent 的自定义标签&#xff08;如 <micro-app>&#xff09;。通过 ShadowDom 的天然隔离机制&#xff0c;实…...

大连理工大学选修课——机器学习笔记(7):集成学习及随机森林

集成学习及随机森林 集成学习概述 泛化能力的局限 每种学习模型的能力都有其上限 限制于特定结构受限于训练样本的质量和规模 如何再提高泛化能力&#xff1f; 研究新结构扩大训练规模 提升模型的泛化能力 创造性思路 组合多个学习模型 集成学习 集成学习不是特定的…...

[特殊字符] Spring Cloud 微服务配置统一管理:基于 Nacos 的最佳实践详解

在微服务架构中&#xff0c;配置文件众多、管理复杂是常见问题。本文将手把手演示如何将配置集中托管到 Nacos&#xff0c;并在 Spring Cloud Alibaba 项目中实现统一配置管理 自动刷新机制。 一、为什么要使用 Nacos 统一配置&#xff1f; 传统方式下&#xff0c;每个服务都…...

【mysql】执行过程,背诵版

sql执行再mysql的执行过程 1. 建立连接 sql通过tcp/ip发送到服务器服务器检查用户名&#xff0c;密码&#xff0c;权限创建线程处理连接 如果是sql8.0之前&#xff0c;select会先从缓存中查找&#xff0c;命中则返回&#xff0c;由于表结构变更会导致缓存失效&#xff0c;已废…...

[Survey] Image Segmentation in Foundation Model Era: A Survey

BaseInfo TitleImage Segmentation in Foundation Model Era: A SurveyAdresshttps://arxiv.org/pdf/2408.12957Journal/Time-Author北理工、上交、浙大 CCAI 、瑞士苏黎世联邦理工学院、德国慕尼黑工业大学Codehttps://github.com/stanley-313/ImageSegFM-Survey 1. Introdu…...