【Python 算法零基础 4.排序 ② 冒泡排序】
目录
一、引言
二、算法思想
三、时间复杂度和空间复杂度
1.时间复杂度
2.空间复杂度
四、冒泡排序的优缺点
1.算法的优点
2.算法的缺点
五、实战练习
88. 合并两个有序数组
算法与思路
① 合并数组
② 冒泡排序
2148. 元素计数
算法与思路
① 排序
② 初始化计数器
③ 遍历数组
④ 返回结果
1046. 最后一块石头的重量
算法与思路
① 冒泡排序
② 石头碰撞模拟
我走的很慢
从不是优秀的人
但是没关系
我很少停下
脆弱会给我新力量
—— 25.5.19
选择排序回顾:
① 初始化:从未排序序列开始,初始时整个数组都是未排序的。
② 寻找最小值:遍历未排序部分的所有元素,找到其中的最小值。使用变量min_idx
记录最小值的索引,初始时假设当前未排序部分的第一个元素是最小的。
③ 交换元素:将找到的最小值与未排序部分的第一个元素交换位置。此时,未排序部分的第一个元素成为已排序序列的一部分。
④ 重复步骤 2-3:缩小未排序部分的范围(从下一个元素开始),重复寻找最小值并交换的过程,直到整个数组排序完成。
def selection_sort(arr):for i in range(len(arr)):min_idx = ifor j in range(i+1, len(arr)):if arr[j] < arr[min_idx]:min_idx = jif min_idx != i: # 避免冗余交换arr[i], arr[min_idx] = arr[min_idx], arr[i]return arr
一、引言
冒泡排序(Bubble Sort)是一种简单的排序算法,通过多次比较和交换相邻的元素,将列表(数组)中的元素按照升序或降序排列
二、算法思想
冒泡排序的基本思想:每次遍历数组,比较相邻的两个元素,如果它们的顺序错误,就将它们交换,直到数组中的所有元素都被遍历过
具体的算法步骤如下:
① 遍历数组的第一个元素到最后一个元素。
② 对每一个元素,与其后一个元素进行比较。
③ 如果顺序错误,就将它们交换。
④ 重复上述步骤,直到数组中的所有元素都被遍历过至少一次。
三、时间复杂度和空间复杂度
1.时间复杂度
我们假设【比较】和【交换】的时间复杂度为O(1)
【冒泡排序】中有两个嵌套循环
外循环正好运行n - 1次迭代。但内部循环运行变得越来越短:
当i = 0,内层循环n - 1次【比较】操作。
当i = 1,内层循环n - 2次【比较】操作。
当i = 2,内层循环n - 3次【比较】操作。
当i = n - 2,内层循环1次【比较】操作。
当i = n - 1,内层循环0次【比较】操作。
因此,总「比较」次数如下:(n - 1) + (n - 2) + ... + 1 + 0 = n (n - 1) / 2,总的时间复杂度为:O(n ^ 2)
2.空间复杂度
由于算法在执行过程中,只有【交换】变量时候采用了临时变量的方式,而其它没有采用任何的额外空间,所以空间复杂度为O(1)。
四、冒泡排序的优缺点
1.算法的优点
① 简单易懂:冒泡排序的算法思想非常简单,容易理解和实现。
② 稳定排序:冒泡排序是一种稳定的排序算法,即在排序过程中不会改变相同元素的相对顺序。
2.算法的缺点
① 效率较低:由于需要进行多次比较和交换,冒泡排序在处理大规模数据时效率较低。
② 排序速度慢:对于大型数组,冒泡排序的时间复杂度较高,导致排序速度较慢。
五、实战练习
88. 合并两个有序数组
给你两个按 非递减顺序 排列的整数数组
nums1
和nums2
,另有两个整数m
和n
,分别表示nums1
和nums2
中的元素数目。请你 合并
nums2
到nums1
中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组
nums1
中。为了应对这种情况,nums1
的初始长度为m + n
,其中前m
个元素表示应合并的元素,后n
个元素为0
,应忽略。nums2
的长度为n
。示例 1:
输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3 输出:[1,2,2,3,5,6] 解释:需要合并 [1,2,3] 和 [2,5,6] 。 合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。示例 2:
输入:nums1 = [1], m = 1, nums2 = [], n = 0 输出:[1] 解释:需要合并 [1] 和 [] 。 合并结果是 [1] 。示例 3:
输入:nums1 = [0], m = 0, nums2 = [1], n = 1 输出:[1] 解释:需要合并的数组是 [] 和 [1] 。 合并结果是 [1] 。 注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。提示:
nums1.length == m + n
nums2.length == n
0 <= m, n <= 200
1 <= m + n <= 200
-109 <= nums1[i], nums2[j] <= 109
算法与思路
① 合并数组
将 nums2
的前 n
个元素依次复制到 nums1
的后 n
个位置(从索引 m
开始)。
② 冒泡排序
使用两层循环对合并后的 nums1
进行升序排序:
外层循环遍历每个元素(索引 i
从 0
到 mn-1
)。
内层循环比较 i
之后的所有元素(索引 j
从 i+1
到 mn-1
)。
若发现 nums1[i] > nums1[j]
,则交换两者位置。
class Solution:def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:"""Do not return anything, modify nums1 in-place instead."""for i in range(n):nums1[m + i] = nums2[i]mn = len(nums1)for i in range(mn):for j in range(i + 1, mn):if nums1[i] > nums1[j]:nums1[i], nums1[j] = nums1[j], nums1[i]
2148. 元素计数
给你一个整数数组
nums
,统计并返回在nums
中同时至少具有一个严格较小元素和一个严格较大元素的元素数目。示例 1:
输入:nums = [11,7,2,15] 输出:2 解释:元素 7 :严格较小元素是元素 2 ,严格较大元素是元素 11 。 元素 11 :严格较小元素是元素 7 ,严格较大元素是元素 15 。 总计有 2 个元素都满足在 nums 中同时存在一个严格较小元素和一个严格较大元素。示例 2:
输入:nums = [-3,3,3,90] 输出:2 解释:元素 3 :严格较小元素是元素 -3 ,严格较大元素是元素 90 。 由于有两个元素的值为 3 ,总计有 2 个元素都满足在 nums 中同时存在一个严格较小元素和一个严格较大元素。提示:
1 <= nums.length <= 100
-105 <= nums[i] <= 105
算法与思路
① 排序
调用 bubbleSort
对数组进行升序排序。
② 初始化计数器
count = 0
。
③ 遍历数组
对于每个元素 x
,检查其是否不等于数组的第一个元素(最小值)和最后一个元素(最大值)。若是,则 count += 1
。
④ 返回结果
最终计数器的值。
class Solution:def bubbleSort(self, nums:List[int]):n = len(nums)for i in range(n):for j in range(i + 1, n):if nums[i] > nums[j]:nums[i], nums[j] = nums[j], nums[i]def countElements(self, nums: List[int]) -> int:self.bubbleSort(nums)count = 0for x in nums:if x != nums[0] and x != nums[-1]:count += 1return count
1046. 最后一块石头的重量
有一堆石头,每块石头的重量都是正整数。
每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为
x
和y
,且x <= y
。那么粉碎的可能结果如下:
- 如果
x == y
,那么两块石头都会被完全粉碎;- 如果
x != y
,那么重量为x
的石头将会完全粉碎,而重量为y
的石头新重量为y-x
。最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回
0
。示例:
输入:[2,7,4,1,8,1] 输出:1 解释: 先选出 7 和 8,得到 1,所以数组转换为 [2,4,1,1,1], 再选出 2 和 4,得到 2,所以数组转换为 [2,1,1,1], 接着是 2 和 1,得到 1,所以数组转换为 [1,1,1], 最后选出 1 和 1,得到 0,最终数组转换为 [1],这就是最后剩下那块石头的重量。提示:
1 <= stones.length <= 30
1 <= stones[i] <= 1000
算法与思路
① 冒泡排序
每轮固定一个位置:通过外层循环 i
控制当前处理的位置,从 0
到 n-1
。
比较后续所有元素:内层循环 j
从 i+1
开始,将 nums[i]
与后续所有元素比较。
交换较大值:若 nums[i] > nums[j]
,则交换两者,确保 i
位置的元素是当前未排序部分的最小值。
② 石头碰撞模拟
初始化:获取石头数组长度 n
,作为循环终止条件。
循环条件:当 n > 1
时,持续处理(确保至少有两块石头可碰撞)。
排序:每次循环调用 bubbleSort
对数组升序排序,使最重的石头位于末尾。
碰撞操作:取出最重的两块石头 stones[-1]
和 stones[-2]
,计算差值 v
。
更新数组:
移除碰撞的石头:通过两次 pop()
移除末尾两个元素,n
减 2。
添加新石头:若 v != 0
(两块石头重量不同)或 n == 0
(碰撞后无剩余石头),将 v
加入数组,n
加 1。
返回结果:循环结束后,若 n == 1
,返回剩余石头 stones[0]
class Solution:def bubbleSort(self, nums:List[int]):n = len(nums)for i in range(n):for j in range(i + 1, n):if nums[i] > nums[j]:nums[i], nums[j] = nums[j], nums[i]def lastStoneWeight(self, stones: List[int]) -> int:n = len(stones)while n > 1:self.bubbleSort(stones)v = stones[-1] - stones[-2]n -= 2stones.pop()stones.pop()if v != 0 or n == 0:stones.append(v)n += 1return stones[0]
相关文章:
【Python 算法零基础 4.排序 ② 冒泡排序】
目录 一、引言 二、算法思想 三、时间复杂度和空间复杂度 1.时间复杂度 2.空间复杂度 四、冒泡排序的优缺点 1.算法的优点 2.算法的缺点 五、实战练习 88. 合并两个有序数组 算法与思路 ① 合并数组 ② 冒泡排序 2148. 元素计数 算法与思路 ① 排序 ② 初始化计数器 ③ 遍历数组…...
【工具】Windows|外接的显示器怎么用软件调亮度(Brightness Slider)
文章目录 工具安装及使用Twinkle Tray:Brightness Slider补充背景知识1. DDC/CI(Display Data Channel Command Interface)2. WMI(Windows Management Instrumentation)3. Twinkle Tray如何结合两者?对比总…...
1.3.3 数据共享、汇聚和使用中的安全目标
探索数据共享、汇聚与使用中的安全目标 在当今数字化时代,数据的价值愈发凸显,数据共享、汇聚与使用成为了推动业务发展、促进创新的重要环节。然而,在这一过程中,数据安全至关重要,我们需要明确并保障保密性、完整性…...
【QT】类A和类B共用类C
当类A和类B需要操作同一个输入框时,需要采用共享实例的设计模式。以下是具体实现方案: 1. 核心实现思路 #mermaid-svg-cdmYFhkgOZ5C0uI5 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-cdmYF…...
《算法导论(第4版)》阅读笔记:p86-p90
《算法导论(第4版)》学习第 19 天,p83-p85 总结,总计 3 页。 一、技术总结 无。 二、英语总结(生词:2) 1. inkling (1)inkling: inclen(“utter in an undertone,低声说话”) c. a hint(提示);a slight knowledg…...
AI在网络安全中的应用之钓鱼邮件检测
0x01 前言 为什么写这个呢,源自于我之前在某教培网站留了信息,不出意外的个人信息泄露的飞快,邮箱开始疯狂收到垃圾邮件甚至钓鱼邮件,看着每天的拦截消息,就在想这个拦截机制挺好玩的,拦截器是怎么知道是不…...
游戏引擎学习第294天:增加手套
准备战斗 我们正在进行的是第294天的开发,目前暂时没有特别确定要做的内容,但我们决定继续研究移动模式相关的部分。虽然一些小型实体系统已经在运行,但并不确定最终效果如何。 今天我们决定实现一个全新的功能:战斗系统。这是游…...
[架构之美]从PDMan一键生成数据库设计文档:Word导出全流程详解(二十)
[架构之美]从PDMan一键生成数据库设计文档:Word导出全流程详解(二十) 一、痛点 你是否经历过这些场景? 数据库字段频繁变更,维护文档耗时费力用Excel维护表结构,版本混乱难以追溯手动编写Word文档&#…...
5个开源MCP服务器:扩展AI助手能力,高效处理日常工作
AI大语言模型(如Claude、GPT)尽管强大,但其原生形态仅限于文本对话,无法直接与外部世界交互。这一局限严重制约了AI在实际应用场景中的价值发挥 - 无法主动获取实时数据、无法操作外部系统、无法访问用户私有资源。 MCPÿ…...
服务器的基础知识
什么是服务器 配置牛、运行稳、价格感人的高级计算机,家用电脑不能比拟的。 服务器的组成:电源、raid卡、网卡、内存、cpu、主板、风扇、硬盘。 服务器的分类 按计算能力分类 超级计算机 小型机AIX x86服务器(服务器cpu架构) …...
bisheng系列(二)- 本地部署(前后端)
一、导读 环境:Ubuntu 24.04、open Euler 23.03、Windows 11、WSL 2、Python 3.10 、bisheng 1.1.1 背景:需要bisheng二开商用,故而此处进行本地部署,便于后期调试开发 时间:20250519 说明:bisheng前后…...
华为ODgolang后端一面面经
MySQL死锁是怎么产生的? 假如有一条SQL语句执行了非常久,你会怎么优化呢? explain 索引什么情况下会失效? InnoDB和MyISAM引擎的区别是什么? 为什么是三次握手 避免历史连接 同步双方初始序列号避免资源浪费 为什么…...
UE5 GAS框架解析内部数据处理机制——服务器与客户端
当, gas通过点击鼠标光标触发事件时,内部的处理机制。 当通过点击事件,命中中目标时, 可获取到对应的TargetData 目标数据。处理相应的操作。 仅有本地的客户端的情况下。命中并不会有什么异常。 当存在服务器时, 服…...
《打造第二大脑》
序 第二大脑,前景无限 2025/05/08 发表想法 是的说的太对了,关键是之前自己一直在找如何能避免出现此问题的方法,今天终于看到了本书所讲的的内容 原文:我们耗费了无数的时间阅读、倾听和观摩他人提供的处世原则、思考方式以及生活…...
Word2Vec详解
目录 Word2Vec 一、Word2Vec 模型架构 (一)Word2Vec 的核心理念 (二)Word2Vec 的两种架构 (三)负采样与层次 Softmax (四)Word2Vec 的优势与局限 二、Word2Vec 预训练及数据集…...
[特殊字符] Word2Vec:将词映射到高维空间,它到底能解决什么问题?
一、在 Word2Vec 之前,我们怎么处理语言? 在 Word2Vec 出现之前,自然语言处理更多是“工程方法”,例如字符串匹配、关键词提取、正则规则...。但这些表示通常缺乏语义,词与词之间看不出任何联系以及非常浅显。当然,技术没有好坏,只有适合的场景。例如: 关键词匹配非常…...
anythingLLM支持本地大模型嵌入知识库后进行api调用
anythingLLM 可以使用本地大模型,并且可以嵌入知识库(Knowledge Base),通过 API 调用该知识库。 ✅ 一、anythingLLM 的基本架构 anythingLLM 是一个支持多种本地大模型(如 LLaMA、Qwen、ChatGLM 等)的开…...
PHP 实现连续子数组的最大和、整数中1出现的次数
在编程面试和实际应用中,处理数组和整数的常见问题之一是求解连续子数组的最大和以及计算整数中1出现的次数。本文将详细介绍如何使用 PHP 实现这两个问题的解决方案。 连续子数组的最大和 连续子数组的最大和问题要求找到一个数组中的连续子数组,使得…...
面试题之进程 PID 分配与回收算法:从理论到 Linux 内核实现
总结: 在操作系统中,进程 PID(Process Identifier)的分配与回收是核心功能之一。本文深入剖析了三种主流算法:位图法、空闲链表法和位图 哈希表组合法,并结合 Linux 内核源码探讨其优化思路。通过时间复杂…...
Pyro:基于PyTorch的概率编程框架
Pyro:基于PyTorch的概率编程框架 **Pyro:基于PyTorch的概率编程框架**基础讲解**一、Pyro核心模块****1. 入门与基础原语****2. 推理算法****3. 概率分布与变换****4. 神经网络与优化****5. 效应处理与工具库** **二、扩展应用与社区贡献****1. 特定领域…...
API Gateway REST API 集成 S3 服务自定义 404 页面
需求分析 使用 API Gateway REST API 可以直接使用 S3 作为后端集成对外提供可以访问的 API. 而当访问的 URL 中存在无效的桶, 或者不存在的对象时, API Gateway 默认回向客户端返回 200 状态码. 而实际上这并不是正确的响应, 本文将介绍如何自定义返回 404 错误页面. 基本功…...
02-前端Web开发(JS+Vue+Ajax)
介绍 在前面的课程中,我们已经学习了HTML、CSS的基础内容,我们知道HTML负责网页的结构,而CSS负责的是网页的表现。 而要想让网页具备一定的交互效果,具有一定的动作行为,还得通过JavaScript来实现。那今天,我们就来讲…...
visual studio code中的插件都是怎么开发的?用的什么编程语言?
目录 开发VS Code插件的编程语言 开发VS Code插件的步骤 学习资源 Visual Studio Code(VS Code)是一款流行的开源代码编辑器,由微软开发,支持多种编程语言。它的一个重要特性是可以通过插件(Extensions)来扩展其功能。这些插件可以增加新的语言支持、主题、调试器以及…...
python第30天
知识点回顾: 导入官方库的三种手段导入自定义库/模块的方式导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致) 作业:自己新建几个不同路径文件尝试下如何导入 浙大疏锦行-CSDN博客 from lib.ut…...
【数据仓库面试题合集③】实时数仓建模思路与实践详解
实时数据仓库已经成为各大企业构建核心指标监控与业务实时洞察的基础能力。面试中,关于实时建模的题目频繁出现,尤其聚焦于建模思路、宽表设计、状态管理、乱序处理等方面。本文整理典型题目及答题思路,帮助你应对相关考察。 一、建模原则与数仓分层认知 1. 实时数仓与离线…...
kotlin Android AccessibilityService 无障碍入门
安卓的无障碍模式可以很好的进行自动化操作以帮助视障人士自动化完成一些任务。 无障碍可以做到,监听屏幕变化,朗读文本,定位以及操作控件等。 以下从配置到代码依次进行无障碍设置与教程。 一、配置 AndroidManifest.xml 无障碍是个服务…...
精益数据分析(69/126):最小可行化产品(MVP)的设计、验证与数据驱动迭代
精益数据分析(69/126):最小可行化产品(MVP)的设计、验证与数据驱动迭代 在创业旅程中,从需求洞察到产品落地的关键一跃是打造最小可行化产品(MVP)。今天,我们结合《精益…...
JVM频繁FullGC:面试通关“三部曲”心法
想象一下,你的Java应用程序是一个繁忙的工厂,JVM堆内存就是工厂的仓库和车间。垃圾收集(GC)就像工厂的清洁工,负责清理不再需要的废料(无用对象),腾出空间让新的生产(对象…...
Scala语言基础与函数式编程详解
Scala语言基础与函数式编程详解 本文系统梳理Scala语言基础、函数式编程核心、集合与迭代器、模式匹配、隐式机制、泛型与Spark实战,并对每个重要专业术语进行简明解释,配合实用记忆口诀与典型代码片段,助你高效学习和应用Scala。 目录 Scal…...
大语言模型 13 - 从0开始训练GPT 0.25B参数量 MiniMind2 补充 训练开销 训练步骤 知识蒸馏 LoRA等
写在前面 GPT(Generative Pre-trained Transformer)是目前最广泛应用的大语言模型架构之一,其强大的自然语言理解与生成能力背后,是一个庞大而精细的训练流程。本文将从宏观到微观,系统讲解GPT的训练过程,…...
【NLP】37. NLP中的众包
众包的智慧:当“无数人”帮你训练AI 当我们谈论构建大语言模型时,脑海中浮现的往往是服务器、GPU 和Transformer,而很少想到成千上万的普通人也在默默贡献力量。 这背后依赖的机制就是:众包(Crowdsourcing࿰…...
数据分析入门指南:从历史到实践
在信息爆炸的时代,数据分析已经成为各行各业不可或缺的技能,无论是商业决策、医疗研究,还是社会科学,数据分析都在其中扮演着关键角色。本文将带你深入了解数据分析的历史、定义、流程、数据来源与处理、常用工具,并通…...
大语言模型 12 - 从0开始训练GPT 0.25B参数量 MiniMind2 补充 训练开销 训练步骤 知识蒸馏 LoRA等
写在前面 GPT(Generative Pre-trained Transformer)是目前最广泛应用的大语言模型架构之一,其强大的自然语言理解与生成能力背后,是一个庞大而精细的训练流程。本文将从宏观到微观,系统讲解GPT的训练过程,…...
精益数据分析(68/126):数据透视表实战与解决方案验证——从问卷分析到产品落地的关键跨越
精益数据分析(68/126):数据透视表实战与解决方案验证——从问卷分析到产品落地的关键跨越 在创业的移情阶段,通过问卷调查获取数据后,如何深入分析数据并验证解决方案的可行性?今天,我们结合《…...
Cursor 模型深度分析:区别、优缺点及适用场景
Cursor 模型深度分析:区别、优缺点及适用场景 在AI辅助编程领域,Cursor凭借其多模型架构和智能上下文感知能力,成为开发者提升效率的核心工具。不同模型在代码生成、逻辑推理、多模态处理等方面存在显著差异,本文将结合技术特性与…...
LightRAG 由入门到精通
LightRAG 由入门到精通 作者:王珂 邮箱:49186456qq.com 文章目录 LightRAG 由入门到精通简介一、LightRAG Server1.1 安装 LightRAG Server1.2 LightRAG Server 和 WebUI1.2.1 配置 LightRAG Server1.2.2 启动 LightRAG Server1.2.3 使用 Docker 加载 …...
【Spring Boot 整合 MongoDB 完整指南】
目录 Spring Boot 整合 MongoDB 完整指南1. 添加依赖2. 配置 MongoDB 连接application.properties 方式:application.yml 方式:3. 创建实体类(映射MongoDB中的文档,相当于MySQL的表)4. 创建 Repository 接口完成简单操作5. 使用 MongoTemplate 进行复杂操作6. 高级配置配置…...
prisma连接非关系型数据库mongodb并简单使用
prisma连接非关系型数据库如mongodb数据库并简单使用 安装 mongodbPrisma连接mongodb改造目录结构写一个model增查查多个查单个分页排序改改多个删单个多个最后代码进度安装 mongodb 社区版下载 副本集模式文档 可以百度下安装副本集模式,因为prisma要用事务。 如果你觉得安装…...
深度强化学习 | 基于SAC算法的移动机器人路径跟踪(附Pytorch实现)
目录 0 专栏介绍1 软性演员-评论家SAC算法2 基于SAC算法的路径跟踪2.1 SAC网络设计2.2 动作空间设计2.3 奖励函数设计 3 算法仿真 0 专栏介绍 本专栏以贝尔曼最优方程等数学原理为根基,结合PyTorch框架逐层拆解DRL的核心算法(如DQN、PPO、SAC)逻辑。针对机器人运动…...
VS中将控制台项目编程改为WINDOWS桌面程序
有时候因为误操作,建立了控制台项目,但是实际上想建立桌面程序。那么应该如何改过来呢? 一共要修改两个地方,修改步骤如下: 第一处修改地点: 将C/C下面的预处理器选项中,将原本的_CONSOLE修改…...
从API到UI:直播美颜SDK中的滤镜与贴纸功能开发与落地方案详解
时下,滤镜和贴纸功能,已经成为主播们展现个性、增强互动的“必备神器”。那么,这些功能背后的技术实现到底有多复杂?如何从API到UI构建一个流畅、灵活的美颜SDK呢?本文将从底层原理到前端实现,全面解析这两…...
vue3与springboot交互-前后分离【验证element-ui输入的内容】
系列文章目录 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是node.js和vue的使用。前后每一小节的内容是存在的有:学习and理解的关联性。【帮帮志系列文章】:每个知识点,都是写出代码…...
VS2017编译librdkafka 2.1.0
VS2017编译librdkafka 2.1.0 本篇是 Windows系统编译Qt使用的kafka(librdkafka)系列中的其中一篇,编译librdkafka整体步骤大家可以参考: Windows系统编译Qt使用的kafka(librdkafka) 由于项目需要,使用kafka,故自己编译了一次,编译的过程,踩了太多的坑了,特写了本篇…...
DeepSeek 赋能数字孪生:重构虚实共生的智能未来图景
目录 一、数字孪生技术概述1.1 数字孪生的概念1.2 技术原理剖析1.3 应用领域与价值 二、DeepSeek 技术解读2.1 DeepSeek 的技术亮点2.2 与其他模型的对比优势 三、DeepSeek 赋能数字孪生3.1 高精度建模助力3.2 实时数据处理与分析3.3 智能分析与预测 四、实际案例解析4.1 垃圾焚…...
谷歌前CEO TED演讲解析:AI 红利的三年窗口期与行业重构
谷歌前CEO埃里克施密特在2025年TED演讲中提出的"AI红利仅剩3年窗口期"观点,揭示了AI技术从算力、需求到监管的全局性变革。以下是基于演讲内容及关联数据的深度分析: 谷歌前CEO TED演讲解析:AI红利的三年窗口期与行业重构 一、算…...
数据仓库面试题合集②】ETL 设计与调度策略详解
📌 面试官为什么爱问 ETL 与调度? ETL 与调度是数据链路的“输血管道”,它的设计直接决定了数据处理的稳定性、扩展性与时效性。面试中此类问题侧重考察: 数据流设计是否合理 对任务依赖与失败容错的认知 是否具备复杂调度 DAG 设计经验 是否理解增量/全量策略、分区机制…...
前端入职总结
负责的工作内容,遇到的问题,怎么解决, 技能组溢出 问题一:溢入溢出bug 互斥实现的核心逻辑 状态管理: selectedOverflowGroups:存储当前选中的溢出技能组ID(数字字符串数组) sel…...
易境通海外仓系统:一件代发全场景数字化解决方案
随着全球经济一体化和消费升级,一件代发业务的跨境电商市场规模持续增长。然而,一件代发的跨境运营也面临挑战,传统海外仓管理模式更因效率低下、协同困难成为业务扩张的瓶颈。 一、一件代发跨境运营痛点 1、多平台协同:卖家往往…...
C#接口的setter或getter的访问性限制
有时候只想对外提供getter,但是属性的赋值又必须是setter,此时,可以限制setter的访问性。例如,假设有一个自定义字典(MyDict)属性,该属性我只希望外部能够访问,但是设置必须在内部,则可提供如下…...
云计算与大数据进阶 | 26、解锁云架构核心:深度解析可扩展数据库的5大策略与挑战(下)
在数据库的世界里,面对数据如潮水般的增长难题,聪明的工程师早已准备了五大扩展方案来应对,它们就像五把钥匙,以破解着不同场景下的性能困局。 上回书云计算与大数据进阶 | 26、解锁云架构核心:深度解析可扩展数据库的…...