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

数据结构与算法:基础与进阶

🌟 各位看官好,我是maomi_9526

🌍 种一棵树最好是十年前,其次是现在!

🚀 今天来学习C语言的相关知识。

👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享给更多人哦

目录

一、什么是数据结构?

1.1 数据结构的定义

1.2 数据结构的分类

二、什么是算法?

2.1 算法的定义与特征

2.2 算法的分类

三、数据结构与算法的重要性

3.1 提升程序的性能

3.2 解决复杂问题

3.3 提高开发效率

3.4 在面试中的作用

四、如何学好数据结构和算法?

4.1 基础知识的学习

4.2 大量的编程练习

4.3 学会分析和优化算法

4.4 多思考和总结

五、常见的学习资源


一、什么是数据结构?

数据结构(Data Structure)是计算机科学中的核心概念,它是指计算机存储、组织数据的方式。数据结构不仅是计算机程序的基础,也是设计和开发高效软件的关键。在编程中,数据结构不仅影响代码的实现和理解,更决定了程序的效率和可扩展性。可以说,掌握数据结构就意味着掌握了高效编程的“武器”。

1.1 数据结构的定义

从技术角度看,数据结构是数据的存储与组织方式,通常指一组数据元素之间存在一定关系的集合。每个数据结构都有其独特的存储方式和访问方法,因此,它们适用于不同的应用场景。

  • 线性数据结构:数据元素按照一定的顺序排列。最常见的线性数据结构有:数组、链表、栈、队列。

  • 非线性数据结构:数据元素之间不是单纯的线性关系,而是存在复杂的层次结构。常见的非线性数据结构包括树(如二叉树、红黑树、堆)、图(如有向图、无向图)等。

数据结构的选择直接影响着程序的性能,比如它影响着程序执行的时间、空间消耗等。因此,理解各种数据结构的特性和适用场景对于开发高效的程序至关重要。

1.2 数据结构的分类

根据数据元素之间的关系,数据结构可以分为以下几类:

  • 线性结构:元素之间存在一对一的关系。包括:

    • 数组:一种具有固定大小和连续存储空间的线性数据结构,访问速度快,但插入和删除元素的效率较低。

    • 链表:由一系列节点组成的线性结构,每个节点包含数据和指向下一个节点的指针,插入和删除元素效率高,但随机访问效率较低。

    • :一种先进后出(LIFO,Last In First Out)结构,常用于函数调用管理、回溯等场景。

    • 队列:一种先进先出(FIFO,First In First Out)结构,广泛应用于任务调度、消息队列等场景。

  • 非线性结构:元素之间存在多对多的关系。包括:

    • :一种分层结构,广泛应用于文件系统、数据库索引等场景。常见的树结构包括二叉树、平衡树、红黑树、B树等。

    • :由顶点和边组成的数据结构,可以表示更复杂的关系,应用于社交网络、计算机网络、最短路径等问题。


二、什么是算法?

算法(Algorithm)是指解决特定问题的步骤和规则。简单来说,算法就是输入一组数据,通过一系列的运算、判断和循环等操作,最终得出结果的过程。

2.1 算法的定义与特征

算法是计算机程序的灵魂,它决定了程序的效率和正确性。一个好的算法通常具备以下几个特点:

  • 输入:算法有明确的输入,通常是一个或多个数据。

  • 输出:算法的目标是得到一个或多个结果。

  • 确定性:算法的每一步都有明确的定义,不存在模糊不清的步骤。

  • 可行性:算法的每一步都可以通过有限的资源和时间实现。

  • 有限性:算法必须在有限的时间内结束。

2.2 算法的分类

根据不同的应用场景和设计方法,算法可以分为多种类型:

  • 排序算法:用于将一组数据按特定顺序排列。常见的排序算法有:

    • 冒泡排序:通过相邻元素的比较和交换逐步将最大元素“冒泡”到最后。

    • 快速排序:通过分治法将数组分成若干部分,每部分排序后合并。

    • 归并排序:通过分治法将数组分成两个部分,分别排序后合并。

    • 堆排序:基于堆数据结构的排序方法,时间复杂度为O(n log n)。

  • 查找算法:用于在数据结构中查找特定的数据。常见的查找算法有:

    • 线性查找:从头到尾依次查找数据,时间复杂度为O(n)。

    • 二分查找:适用于有序数据,通过不断分割数据范围来加速查找过程,时间复杂度为O(log n)。

  • 图算法:用于图数据结构中的操作,常见的算法有:

    • 深度优先搜索(DFS):从起点出发,尽可能深地遍历图的节点。

    • 广度优先搜索(BFS):从起点出发,按层次逐层遍历图的节点。

    • Dijkstra算法:用于计算图中单源最短路径。

  • 动态规划:将一个大问题拆解为多个小问题,通过保存中间结果来避免重复计算。典型应用包括求解斐波那契数列、最短路径问题等。


三、数据结构与算法的重要性

数据结构和算法的重要性不言而喻,尤其在面向技术的工作环境中,掌握良好的数据结构和算法可以大大提高程序的效率和可维护性。以下几个方面阐述了它们的重要性。

3.1 提升程序的性能

数据结构和算法直接影响程序的时间复杂度和空间复杂度。合理选择数据结构和算法可以显著提高程序的执行效率。比如,在处理大量数据时,选择合适的排序算法和查找算法可以节省大量的计算资源。一个算法的时间复杂度越低,程序运行得越快,尤其是在数据量较大时,性能差异更加明显。

3.2 解决复杂问题

许多现实中的问题,特别是大规模的计算问题,无法通过直观的简单方法解决。这时候,我们需要通过合适的数据结构和算法来分解问题,寻找解决方案。比如,在图论中,我们可以通过图算法来求解最短路径、最大流等问题。

3.3 提高开发效率

数据结构和算法不仅帮助我们更高效地解决问题,还能提高代码的可读性和可维护性。通过使用适当的算法和数据结构,可以减少不必要的复杂度,让代码更简洁、易懂。

3.4 在面试中的作用

在技术面试中,数据结构和算法通常是面试的重点。许多技术公司,尤其是大公司,如Google、Facebook、Amazon等,会在面试中考察应聘者对数据结构和算法的理解和应用能力。掌握数据结构和算法的基本知识,不仅能提高面试通过率,还能帮助你更好地解决实际问题。


四、如何学好数据结构和算法?

学习数据结构和算法不是一蹴而就的,它需要系统地学习和不断地实践。以下是一些学习建议:

4.1 基础知识的学习

首先,需要学习和掌握数据结构的基础知识,包括数组、链表、栈、队列、树、图等基础结构的实现和操作。同时,需要熟悉常见算法的基本思想,如排序算法、查找算法、动态规划等。学习时,建议通过课本、教程以及网络资源来打下坚实的理论基础。

4.2 大量的编程练习

光学习理论是不够的,最重要的是要通过编程实现各种数据结构和算法。通过实现不同的数据结构和算法,可以加深对它们的理解。可以通过刷题平台(如LeetCode、牛客网)进行大量的编程练习,挑战各种难度的算法题,提升自己的编程能力。

4.3 学会分析和优化算法

在编写代码时,除了正确性,还需要关注算法的效率,尤其是在数据量较大时。学会分析算法的时间复杂度和空间复杂度,并通过优化算法来提升效率,是每个程序员的必备技能。

4.4 多思考和总结

数据结构和算法的学习并非一蹴而就,它需要通过大量的思考、总结和复习来逐渐掌握。遇到问题时,不妨画图、模拟运行,帮助自己理解算法的步骤和过程。


五、常见的学习资源

在学习数据结构和算法的过程中,选择好的学习资源至关重要。以下是一些经典的学习资源推荐:

  • 《算法导论》:这本书是学习算法的经典教材,内容全面,适合想深入理解算法的读者。

  • 《数据结构与算法分析》:这本书更侧重于数据结构和算法的分析与实现,适合需要理解细节的读者。

  • LeetCode:一个在线刷题平台,提供了大量的算法题,可以帮助你进行实际的编程训练。

  • 剑指Offer:这本书包含了许多经典的编程面试题,适合刷题和面试准备。

相关文章:

数据结构与算法:基础与进阶

🌟 各位看官好,我是maomi_9526! 🌍 种一棵树最好是十年前,其次是现在! 🚀 今天来学习C语言的相关知识。 👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享给更…...

低配置云服务器网站的高效防御攻略

在网络环境日益复杂的当下,低配置云服务器网站常面临攻击威胁。不少站长疑惑,明明设置了 CC 防御,服务器却依旧不堪一击,这是怎么回事呢? 比如,在 CC 防御配置中,设定 10 秒内允许访问 50 次。但…...

使用 Lua 脚本高效查询 Redis 键的内存占用

使用 Lua 脚本高效查询 Redis 键的内存占用 在处理 Redis 数据时,我们常常需要了解某些键的内存占用情况,尤其是在优化内存使用或排查问题时。虽然 Redis 提供了MEMORY USAGE命令来查询单个键的内存占用,但如果需要批量查询多个键&#xff0…...

【Linux篇】基础IO - 揭秘重定向与缓冲区的管理机制

📌 个人主页: 孙同学_ 🔧 文章专栏:Liunx 💡 关注我,分享经验,助你少走弯路! 文章目录 一. 理解重定向1.1 理解重定向1.2 dup21.3 进一步理解重定向输出重定向:追加重定向…...

centos 8 启动Elasticsearch的时候报内存不足问题解决办法

centos 8 启动Elasticsearch 的时候报错,导致无法启动Elasticsearch 。 [root@CentOS-8 ~]# journalctl -xe Apr 07 18:25:56 CentOS-8.0 kernel: [ 8754] 0 8754 3180 63 69632 0 0 sh Apr 07 18:25:56 CentOS-8.0 kernel: [ 8755] 0 8755 3180 64 69632 0 0 sh Apr 07 18:25…...

深入剖析Java IO设计模式:从底层原理到实战应用

🔍 引言:设计模式与IO的完美交响 在软件开发的浩瀚星河中,设计模式犹如璀璨的导航星,而Java IO体系则是支撑数据流动的神经网络。 当我们以设计模式的视角重新审视Java IO库时,会发现这个看似平凡的IO世界实则暗藏着…...

阶段测试 【过程wp】

分享总结: 回顾起来,真的感慨很多呀。看着并不难啊,但难的是解题思维:如何判断该页面的关键点,快速地确定问题的核心,找到对应的解决方法。达到便捷、高效的得到结果。我们做了整整近七个半小时。在这个过程中,我发现自己的思维钝化,不太能自主高效地划分判断漏洞类型,…...

qml信号与槽函数

目录 信号与槽函数基础方法1-使用Connections方式2-使用connect(不常用) 自定义组件与信号槽使用 信号与槽函数基础 方法1-使用Connections main.qml import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.15Window {id:windoww…...

ngx_palloc

定义在 src\core\ngx_palloc.c void * ngx_palloc(ngx_pool_t *pool, size_t size) { #if !(NGX_DEBUG_PALLOC)if (size < pool->max) {return ngx_palloc_small(pool, size, 1);} #endifreturn ngx_palloc_large(pool, size); } 判断 需要分配的内存大小 是否小于 poo…...

notepad++日常使用(每行开头、每行末尾增加字符串,每行中间去掉字符串)

1. 每行开头增加字符串 如果我们要给下面的数据每行的开头都增加相同的一些字符串{value: 这时候只需要使用notepad的语法&#xff0c;使用快捷键Crtl H 替换功能&#xff0c;每一行开头使用 ^ 符号&#xff0c;替换成自己想要的字符串 {value: 使用全部替换就会在每行数据…...

Java面试黄金宝典39

1. SNMP、SMTP 协议 SNMP(简单网络管理协议) 定义:SNMP 是一种应用层协议,用于在 IP 网络中管理网络节点(如服务器、路由器、交换机等)。它允许网络管理员监控网络设备的状态、收集性能数据、进行故障诊断等操作。SNMP 基于 UDP 协议,采用轮询和事件驱动相结合的方式来收…...

如何解决:http2: Transport received Server‘s graceful shutdown GOAWAY

有一次做压力测试&#xff0c;客户端经常出现如下错误&#xff1a; http2: Transport: cannot retry err [http2: Transport received Servers graceful shutdown GOAWAY] after Request.Body was written; define Request.GetBody to avoid this error是 Golang 中使用 HTTP/…...

贪心算法(16)(java)俄罗斯套娃信封问题

题目&#xff1a;给你一个二维整数数组 envelopes &#xff0c;其中 envelopes[i] [wi, hi] &#xff0c;表示第 i 个信封的宽度和高度。 当另一个信封的宽度和高度都比这个信封大的时候&#xff0c;这个信封就可以放进另一个信封里&#xff0c;如同俄罗斯套娃一样。 请计算…...

【DeepSeek原理学习2】MLA 多头隐变量注意力

解决的问题 Multi-Head Latent Attention&#xff0c;MLA——解决的问题&#xff1a;KV cache带来的计算效率低和内存需求大以及上下文长度扩展问题。 MLA原理 MLA原理&#xff1a;其核心思想是将键&#xff08;Key&#xff09;和值&#xff08;Value&#xff09;矩阵压缩到…...

2024年RAG大赛

2024 CCF国际AIOps挑战赛赛题与赛制解读-CSDN博客 自动化测评也比较有意思&#xff0c;分数为 关键字 语义相似度&#xff0c;分值比为6:4. 2024 CCF AIOPS国际挑战赛优秀奖方案分享 https://zhuanlan.zhihu.com/p/7444390758 【大模型RAG获奖方案分享】如何提高RAG系统在…...

2025-4-6-C++ 学习 有序数组、set()的一些内置函数与求和函数

C的学习必须更加精进一些&#xff0c;对于好多的函数和库的了解必须深入一些。 文章目录 3510. 移除最小数对使数组有序 II&#xff08;有序数组&#xff09;题目参考代码&#xff08;1&#xff09;auto it idx.lower_bound(i);功能解释可能的使用场景常见错误 &#xff08;2&…...

Flutter:Flutter SDK版本控制,fvm安装使用

1、首先已经安装了Dart&#xff0c;cmd中执行 dart pub global activate fvm2、windows配置系统环境变量 fvm --version3、查看本地已安装的 Flutter 版本 fvm releases4、验证当前使用的 Flutter 版本&#xff1a; fvm flutter --version5、切换到特定版本的 Flutter fvm use …...

GPT-4o 的“图文合体”是怎么做到的

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

PyTorch教程:如何读写张量与模型参数

本文演示了PyTorch中张量&#xff08;Tensor&#xff09;和模型参数的保存与加载方法&#xff0c;并提供完整的代码示例及输出结果&#xff0c;帮助读者快速掌握数据持久化的核心操作。 1. 保存和加载单个张量 通过torch.save和torch.load可以直接保存和读取张量。 import to…...

MySQL8.0.31安装教程,附pdf资料和压缩包文件

参考资料&#xff1a;黑马程序员 一、下载 点开下面的链接&#xff1a;https://dev.mysql.com/downloads/mysql/ 点击Download 就可以下载对应的安装包了, 安装包如下: 我用夸克网盘分享了「mysql」&#xff0c;链接&#xff1a;https://pan.quark.cn/s/ab7b7acd572b 二、解…...

Linux 系统中对存储设备(/dev/mmcblk、/dev/sd、/dev/nvme)进行分区、格式化或挂载的操作

在 Linux 系统中对存储设备&#xff08;/dev/mmcblk、/dev/sd、/dev/nvme&#xff09;进行分区、格式化或挂载的操作步骤如下&#xff1a; 一、确认设备信息 首先明确要操作的设备名称&#xff08;如 /dev/sdb、/dev/nvme0n1&#xff09;&#xff0c;避免误操作导致数据丢失&a…...

【Kafka基础】topics命令行操作大全:高级命令解析(1)

1 创建压缩主题&#xff08;Log Compaction&#xff09; /export/home/kafka_zk/kafka_2.13-2.7.1/bin/kafka-topics.sh --create \--bootstrap-server 192.168.10.33:9092 \--topic comtopic \--partitions 3 \--replication-factor 2 \--config cleanup.policycompact \--con…...

springboot集成spring loadbalancer实现客户端负载均衡

在 Spring Boot 中实现负载均衡&#xff0c;通常需要结合 Spring Cloud 组件&#xff0c;比如 Spring Cloud LoadBalancer。Spring Cloud LoadBalancer 是一个客户端负载均衡器&#xff0c;可以与 Spring Boot 集成&#xff0c;实现微服务之间的负载均衡。 以下是一个简单的示…...

什么是 k8s Affinity(亲和性)

在 Kubernetes&#xff08;K8s&#xff09;中&#xff0c;Affinity&#xff08;亲和性&#xff09; 是一种 Pod 调度策略&#xff0c;它用于控制 Pod 在什么条件下可以被调度到特定的节点上。它比 Taints 和 Tolerations 更灵活&#xff0c;可以基于 节点属性 或 Pod 之间的关系…...

深度探索:策略学习与神经网络在强化学习中的应用

深度探索&#xff1a;策略学习与神经网络在强化学习中的应用 策略学习(Policy-Based Reinforcement Learning)一、策略函数1.1 策略函数输出的例子 二、使用神经网络来近似策略函数&#xff1a;Policy Network ,策略网络2.1 策略网络运行的例子2.2需要的几个概念2.3神经网络近似…...

用VAE作为标题显示标题过短,所以标题变成了这样

VAE (Variational Autoencoder / 变分自编码器) 基本概念: VAE 是一种生成模型 (Generative Model)&#xff0c;属于自编码器 (Autoencoder) 家族。 它的目标是学习数据的潜在表示 (Latent Representation)&#xff0c;并利用这个表示来生成新的、与原始数据相似的数据。 与标…...

【day27】测试策略升级方案:需求阶段介入与业务规则覆盖矩阵设计

测试策略升级方案&#xff1a;需求阶段介入与业务规则覆盖矩阵设计 一、需求评审阶段&#xff1a;主动识别业务逻辑问题 在需求评审时&#xff0c;测试团队应通过结构化提问提前暴露潜在风险&#xff0c;避免后期返工。以下为提问框架与示例&#xff1a; 1. 业务逻辑澄清提问模…...

AI烘焙大赛中的算法:理解PPO、GRPO与DPO的罪简单的方式

&#x1f9e0; 向所有学习者致敬&#xff01; “学习不是装满一桶水&#xff0c;而是点燃一把火。” —— 叶芝 我的博客主页&#xff1a; https://lizheng.blog.csdn.net &#x1f310; 欢迎点击加入AI人工智能社区&#xff01; &#x1f680; 让我们一起努力&#xff0c;共创…...

二分 —— 基本算法刷题路程

一、1.求阶乘 - 蓝桥云课 算法代码&#xff1a; #include <bits/stdc.h> using namespace std; #define ll long long ll check(ll n) {ll cnt0;while(n){cnt(n/5);}return cnt; }int main() {ll k;cin>>k;ll L0,R1e19;while(L<R){ll mid(LR)>>1;if(che…...

内存序问题排查

1 内存序 2 简介 std::memory_order 是 C11 引入的一个枚举类型&#xff0c;用于和 <atomic> 原子操作一起使用&#xff0c;控制多线程环境下内存的可见性和执行顺序。 它的主要作用是&#xff1a;告诉编译器和 CPU&#xff0c;在执行某个原子操作时&#xff0c;哪些内…...

历年跨链合约恶意交易详解(四)——Chainswap20210711

漏洞合约函数 function receive(uint256 fromChainId, address to, uint256 nonce, uint256 volume, Signature[] memory signatures) virtual external payable {_chargeFee();require(received[fromChainId][to][nonce] 0, withdrawn already);uint N signatures.length;r…...

Johnson

理论 全源最短路算法 Floyd 算法&#xff0c;时间复杂度为 O(n)跑 n 次 Bellman - Ford 算法&#xff0c;时间复杂度是 O(nm)跑 n 次 Heap - Dijkstra 算法&#xff0c;时间复杂度是 O(nmlogm) 第 3 种算法被 Johnson 做了改造&#xff0c;可以求解带负权边的全源最短路。 J…...

spring boot + Prometheus + Grafana 实现项目监控

一、引入依赖 <dependencies><!-- Spring Boot Starter Actuator --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!-- Micrometer Reg…...

Mythical Beings:第八季即将回归,探索新的神话传承

Mythical Beings是由Tarasca Art & Games开发的、基于Ignis区块链的卡牌收集游戏。自发布以来&#xff0c;这款游戏以其独特的玩法和深厚的神话背景吸引了大量玩家的关注。每张卡牌不仅代表着独特的游戏属性&#xff0c;还融合了丰富的文化和神话故事&#xff0c;使玩家不仅…...

Linux中查看占用端口号的进程信息的方法

在 Linux 中查看占用 ** 端口&#xff08;eg:1717&#xff09;**的进程号&#xff08;PID&#xff09;&#xff0c;可以通过以下命令实现&#xff1a; 方法 1&#xff1a;使用 netstat 命令 sudo netstat -tulnp | grep :1717参数解释&#xff1a; -t&#xff1a;查看 TCP 端口…...

批量将 txt/html/json/xml/csv 等文本拆分成多个文件

我们的文本文件太大的时候&#xff0c;我们通常需要对文本文件进行拆分&#xff0c;比如按多少行一个文件将一个大的文本文件拆分成多个小的文本文件。这样我们在打开或者传输的时候都比较方便。今天就给大家介绍一种同时对多个文本文件进行批量拆分的方法&#xff0c;可以快速…...

爱普生高精度车规晶振助力激光雷达自动驾驶

在自动驾驶技术快速落地的今天&#xff0c;激光雷达作为车辆的“智慧之眼”&#xff0c;其测距精度与可靠性直接决定了自动驾驶系统的安全上限。而在这双“眼睛”的核心&#xff0c;爱普生&#xff08;EPSON&#xff09;的高精度车规晶振以卓越性能成为激光雷达实现毫米级感知的…...

Spring Boot 自定义 Redis Starter 开发指南(附动态 TTL 实现)

一、功能概述 本 Starter 基于 Spring Boot 2.7 实现以下核心能力&#xff1a; Redis 增强&#xff1a;标准化 RedisTemplate 配置&#xff08;JSON 序列化 LocalDateTime 支持&#xff09;缓存扩展&#xff1a;支持 Cacheable(value “key#60s”) 语法动态设置 TTL配置集中…...

区分CRI、OCI、containerd、Docker、CRI-O、runc等名词概念

这些概念可以分为&#xff1a; 一、容器运行时Container Runtimes a、规范OCI (Open Container Initiative) 定义&#xff1a;OCI 是一个开放标准&#xff0c;用于定义容器格式和运行时的规范。它旨在确保容器镜像的格式和容器运行时的操作方式在不同的实现之间保持兼容性。 •…...

#关于process.env.NODE_ENV 与 import.meta.env 相关了解

process.env.NODE_ENV 在前端 Vue 项目中非常重要&#xff0c;但它其实是个“假象”&#xff0c;在前端它并不是原生就有的变量。下面我从多个角度来给你通俗讲明白它的由来和使用方式 &#x1f447; &#x1f310; 一、process.env.NODE_ENV 是干嘛用的&#xff1f; 这是 一个…...

R语言赋能气象水文科研:从多维数据处理到学术级可视化

全球气候变化加剧了极端天气与水文事件的复杂性&#xff0c;气象卫星、雷达、地面观测站及水文传感器每天产生TB级‌时空异质数据‌。传统研究常面临四大瓶颈&#xff1a; ‌数据清洗低效‌&#xff1a;缺失值、异常值处理耗时&#xff1b;‌时空分析模型构建复杂‌&#xff1…...

MySQL 约束(入门版)

目录 一、约束的基本概念 二、约束演示 三、外键约束 &#xff08;一&#xff09;介绍 &#xff08;二&#xff09;外键约束语法 &#xff08;三&#xff09;删除/更新行为 一、约束的基本概念 1、概念&#xff1a;约束是作用于表中字段上的规则&#xff0c;用于限制存储…...

【go】类型断言

接口-类型断言 Type Assertion Type Assertion&#xff08;中文名叫&#xff1a;类型断言&#xff09;&#xff0c;通过它可以做到以下几件事情 检查 i 是否为 nil&#xff08;是nil直接抛出panic&#xff09;检查 i 存储的值是否为某个类型 具体的使用方式有两种&#xff…...

(复看)CExercise_06_1指针和数组_2 给定一个double数组,求平均值,并且返回

题目&#xff1a; 求平均值&#xff0c;给定一个double数组&#xff0c;求平均值&#xff0c;并且返回。 要求使用while循环遍历数组&#xff0c;然后配合"*p"的语法实现。 函数的声明如下&#xff1a; double get_ave(double *arr, int len); 关键点 分析&#xff1…...

Ubuntu 服务器上运行相关命令,关闭终端就停止服务,怎么才能启动后在后台运行?

环境&#xff1a; Ubuntu 20.04 LTS 问题描述&#xff1a; Ubuntu 服务器上运行相关命令&#xff0c;关闭终端就停止服务&#xff0c;怎么才能启动后在后台运行&#xff1f; bash docker/entrypoint.sh解决方案&#xff1a; bash docker/entrypoint.sh 脚本在后台运行&…...

ffmpeg提取字幕

使用ffmpeg -i test.mkv 获取视频文件的字幕流信息如下 Stream #0:4(chi): Subtitle: subrip (srt) (default) Metadata: title : chs Stream #0:5(chi): Subtitle: subrip (srt) Metadata: title : cht Stream #0:6(jpn)…...

深入理解Socket编程:构建简单的计算器服务器

一、Socket通信基础 1. Socket通信基本流程 服务器端流程&#xff1a; 创建Socket (socket()) 绑定地址和端口 (bind()) 监听连接 (listen()) 接受连接 (accept()) 数据通信 (read()/write()) 关闭连接 (close()) 客户端流程&#xff1a; 创建Socket (socket()) 连接…...

CPU狂飙900%,该怎么处理

首先&#xff0c;说明一下问题&#xff1a;CPU飙升200% 以上是生产容易发生的场景 场景:1&#xff1a;MySQL进程飙升900% 大家在使用MySQL过程&#xff0c;想必都有遇到过CPU突然过高&#xff0c;或者达到200%以上的情况。 数据库执行查询或数据修改操作时&#xff0c;系统需…...

C++继承完全指南:从语法到设计模式----图解原理+工业级代码示例+陷阱规避

&#x1f52e;✨⚡️&#x1f30c; 欢迎来到张有志的量子编程次元 &#x1f30c;⚡️✨&#x1f52e; ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂ &#x1f6f8; 核心探索舱 &#x1f6f8; ⇩⇩⇩ 正在加载未来代码 ⇩⇩⇩ ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔…...

使用Pholcus编写Go爬虫示例

想用Pholcus库来写一个Go的爬虫程序。首先&#xff0c;我得确认Pholcus的当前状态&#xff0c;因为之前听说过它可能已经不再维护了。不过用户可能还是需要基于这个库的示例&#xff0c;所以得先提供一个基本的框架。 首先&#xff0c;我应该回忆一下Pholcus的基本用法。Pholc…...