[计算机科学#13]:算法
【核知坊】:释放青春想象,码动全新视野。
我们希望使用精简的信息传达知识的骨架,启发创造者开启创造之路!!!
内容摘要: 算法是解决问题的系统化步骤,不同的问题常常可以通过多种算法解决。常见的排序算法包括选择排序、冒泡排序和归并排序等。算法的效率通常通过时间和空间复杂度来衡量。
关键词:算法 排序 算法复杂度
其他相关文章:
[计算机科学#12]:高级编程语言基本元素,迅速上手编程-CSDN博客
[计算机科学#11]:编程语言简史,从二进制到简约表达的华丽转身,造就原因——“懒”-CSDN博客
[计算机科学#10]:早期的计算机编程方式-CSDN博客
算法
算法(algorithm)在数学和计算机科学之中,指一个被定义好的、计算机可施行其指示的有限步骤或次序,常用于计算、数据处理和自动推理。算法可以使用条件语句通过各种途径转移代码执行(称为自动决策),并推导出有效的推论(称为自动推理),最终实现自动化。简单来说,算法就是解决问题的具体步骤。
解决同一个问题可以使用不同的算法,不同的算法可能复杂度不同,运算时间不同,内存使用效率也不同,具体的选择根据实际应用场景决定。
排序算法
最常见的算法问题当属排序算法,例如网上购物时,我们需要同一种商品,为了找到价格便宜且质量好的商品,我们会选择筛选排序,将适合的商品置顶供我们选择。还有手机里的通讯录,可以按照首字母顺序排列,也可以按照联系频率排列。
排序算法针对的数据都是相同性质的数据,这些数据的数量一般都大于1,将他们汇集在一起时,我们统称这种数据格式叫“数组”。例如通讯录里的人名:名字数组=[阿星,李逵,泡泡龙,Koro, 小李,大力];或者一组数字:整数数组=[12,334,13,76,34,55] 。
选择排序
选择排序(Selection Sort)是一种简单直观的排序算法。它的基本思想是:每一轮从未排序的元素中选出最小(或最大)值,放到已排序序列的末尾,直到所有元素都排序完成。
🧠 核心思想:每次从未排序的部分中找出最小(或最大)元素,放到已排序部分的末尾
例如使用[12,334,13,76] 进行演示:首先找到最小的数字 min=12 ,放入已排序数组中[12,];然后再在剩余数字[334,13,76]寻找最小值min=13,放入已排序数组中[12,13];重复这个步骤,最终获得[12,13,76,334]。
下列是使用Python实现的选择排序算法:
def selection_sort(arr):n = len(arr)for i in range(n):min_idx = i# 找到未排序部分的最小元素for j in range(i + 1, n):if arr[j] < arr[min_idx]:min_idx = j# 如果找到更小的元素,则交换if min_idx != i:arr[i], arr[min_idx] = arr[min_idx], arr[i]return arr# 示例数组array = [12, 334, 13, 76, 34, 55]sorted_array = selection_sort(array)print("排序结果:", sorted_array)#排序结果: [12, 13, 34, 55, 76, 334]
冒泡排序
冒泡排序(Bubble Sort)是一种简单直观的排序算法。其核心思想是通过重复比较相邻元素并交换它们的位置,使较大的元素逐步“冒泡”到序列的末尾。这个过程就像气泡上升一样,因此得名“冒泡排序”。
🧠 核心思想:通过多次遍历序列,比较并交换相邻的元素,使未排序部分的最大元素逐步移动到序列的末尾。
例如使用[12,334,13,76] 进行演示:
第 1 轮,比较 12
和 334
:12 < 334,不交换; 比较 334
和 13
:334 > 13,交换,数组变为 [12, 13, 334, 76]
; 比较 334
和 76
:334 > 76,交换,数组变为 [12, 13, 76, 334]
;第 1 轮结束,最大值 334
已“冒泡”到数组末尾。
第 2 轮,比较 12
和 13
:12 < 13,不交换; 比较 13
和 76
:13 < 76,不交换;第 2 轮结束,次大值 76
已到位。
第 3 轮,比较 12
和 13
:12 < 13,不交换;第 3 轮结束,数组已完全有序,[12, 13, 76, 334]
下列是使用Python实现的冒泡排序算法:
def bubble_sort(arr):n = len(arr)for i in range(n):# 标志位,用于检测本轮是否有交换swapped = Falsefor j in range(0, n - i - 1):# 如果前一个元素大于后一个元素,交换它们if arr[j] > arr[j + 1]:arr[j], arr[j + 1] = arr[j + 1], arr[j]swapped = True# 如果本轮没有发生交换,说明序列已经有序if not swapped:breakreturn arr# 示例数组array = [12, 334, 13, 76, 34, 55]sorted_array = bubble_sort(array)print("排序结果:", sorted_array)#排序结果: [12, 13, 34, 55, 76, 334]
归并排序
归并排序(Merge Sort)是一种高效、稳定的排序算法,采用分治法(Divide and Conquer)策略。
🧠核心思想
其核心思想是将数组分成两个子数组,分别对子数组进行排序,然后合并两个有序子数组以得到最终的排序结果。
-
分解(Divide):将待排序的数组分成两个子数组。
-
解决(Conquer):递归地对两个子数组进行归并排序。
-
合并(Merge):将两个已排序的子数组合并成一个有序数组。
例如使用[12,334,13,76] 进行演示:
分解:将数组分成两部分:[12, 334]
和 [13, 76]
。继续分解:[12, 334]→
[12]和 334→
[13]和 [76]
合并: 合并 [12]
和 [334]
,比较 12
和 334
,12
较小,放入新数组。将剩下的 334
放入新数组。结果为 [12, 334]
。合并 [13]
和 [76]
:比较 13
和 76
,13
较小,放入新数组。将剩下的 76
放入新数组。结果为 [13, 76]
。合并 [12, 334]
和 [13, 76]
:比较 12
和 13
,12
较小,放入新数组。比较 334
和 13
,13
较小,放入新数组。比较 334
和 76
,76
较小,放入新数组。将剩下的 334
放入新数组。结果为 [12, 13, 76, 334]
。
下列是使用Python实现的归并排序算法:
def merge_sort(arr):if len(arr) <= 1:return arr# 分解mid = len(arr) // 2left_half = merge_sort(arr[:mid])right_half = merge_sort(arr[mid:])# 合并return merge(left_half, right_half)def merge(left, right):result = []i = j = 0# 合并两个有序子数组while i < len(left) and j < len(right):if left[i] <= right[j]:result.append(left[i])i += 1else:result.append(right[j])j += 1# 添加剩余元素result.extend(left[i:])result.extend(right[j:])return result# 示例数组array = [12, 334, 13, 76]sorted_array = merge_sort(array)print("排序结果:", sorted_array)# 排序结果: [12, 13, 76, 334]
Dijkstra路径算法
Dijkstra算法是一种用于在带权图中寻找从单一源点到所有其他节点的最短路径的贪心算法。它广泛应用于地图导航、网络路由和资源调度等领域。
🧠 核心思想:Dijkstra算法的核心思想是:从起始节点出发,逐步扩展到邻近节点,始终选择当前已知最短路径的节点进行处理,并更新其邻居的最短路径估计。
算法步骤:
-
初始化:
-
为每个节点设置一个初始距离,起始节点为0,其他节点为∞。
-
创建一个未访问节点的集合。
-
-
选择当前节点:
-
从未访问节点中选择距离起始节点最小的节点作为当前节点。
-
-
更新邻居距离:
-
对于当前节点的每个邻居,计算从起始节点经过当前节点到该邻居的路径长度。
-
如果该路径长度小于邻居当前的距离估计,更新邻居的距离。
-
-
标记已访问:
-
将当前节点标记为已访问,从未访问集合中移除。
-
-
重复:
-
重复步骤2至4,直到所有节点都被访问或目标节点的最短路径已确定。
-
以上图为例,绿色点是起点,红色点是终点,蓝色点是中间的节点,节点之间有直线代表通路,数字代表“代价”或者“权重”。现在我们需要找到一条从起点到终点的最小代价路径。
你可以将该图理解为从你家到学校的行走方式,代价就是花费的时间,例如路径Start->B->End总时间为4+2 = 6小时。
现在我们使用Dijkstra算法找出一条花费最小代价的路径:
import heapqdef dijkstra(graph, start):# 初始化距离字典,所有节点距离为∞,起始节点距离为0distances = {node: float('inf') for node in graph}distances[start] = 0# 使用优先队列存储待访问节点queue = [(0, start)]while queue:current_distance, current_node = heapq.heappop(queue)# 如果当前距离大于已记录的最短距离,跳过if current_distance > distances[current_node]:continuefor neighbor, weight in graph[current_node].items():distance = current_distance + weight# 如果通过当前节点到邻居的距离更短,更新距离并加入队列if distance < distances[neighbor]:distances[neighbor] = distanceheapq.heappush(queue, (distance, neighbor))return distances# 示例图的邻接表表示graph = {'Start': {'A': 3, 'B': 4, 'C': 2},'A': {'Start': 3, 'End': 5},'B': {'Start': 4, 'End': 2, 'C': 1},'C': {'Start': 2, 'B': 1},'End': {'A': 5, 'B': 2}}# 计算从节点A出发的最短路径shortest_paths = dijkstra(graph, 'Start')print(shortest_paths)#{'Start': 0, 'A': 3, 'B': 3, 'C': 2, 'End': 5}
算法复杂度衡量
算法复杂度是指算法在编写成可执行程序后,运行时所需要的资源,资源包括时间资源和内存资源。应用于数学和计算机导论。算法复杂度是衡量算法在执行过程中所需资源(如时间和空间)的一种方式,主要包括时间复杂度和空间复杂度。
⏱ 时间复杂度
时间复杂度用于描述算法执行所需的时间随输入规模增长的变化趋势。它通常用大 O 表示法(Big O notation)来表示。
常见的时间复杂度等级:
-
O(1):常数时间,执行时间不随输入规模变化。
-
O(log n):对数时间,如二分查找。
-
O(n):线性时间,执行时间与输入规模成正比。
-
O(n log n):线性对数时间,如快速排序、归并排序。
-
O(n²):平方时间,如冒泡排序、选择排序。
-
O(2ⁿ):指数时间,如解决某些递归问题。
例如,冒泡排序的时间复杂度为 O(n²),因为它需要进行 n*(n-1)/2 次比较。
🧠 空间复杂度
空间复杂度用于描述算法在执行过程中所需的内存空间随输入规模增长的变化趋势。同样使用大 O 表示法。
常见的空间复杂度等级:
-
O(1):常数空间,算法只需固定数量的空间。
-
O(n):线性空间,所需空间与输入规模成正比。
-
O(n²):平方空间,所需空间与输入规模的平方成正比。
例如,归并排序的空间复杂度为 O(n),因为它需要额外的数组来存储中间结果。
总结
只要与计算机相关的软件,内部都有算法,作为优秀的程序员们,都力求使用最精致的代码完成最高效的算法。
感谢阅览,如果你喜欢该内容的话,可以点赞,收藏,转发。
由于 Koro 能力有限,有任何问题请在评论区内提出,Koro 看到后第一时间回复您!!!
其他精彩内容:
[计算机科学#7]:CPU的三阶段,取指令、解码、执行-CSDN博客
[计算机科学#8]:指令与程序的奥秘-CSDN博客
[计算机科学#9]:更高级的CPU,榨干每个时钟的价值-CSDN博客
参考内容:
Crash Course Computer Science(Y-T)
相关文章:
[计算机科学#13]:算法
【核知坊】:释放青春想象,码动全新视野。 我们希望使用精简的信息传达知识的骨架,启发创造者开启创造之路!!! 内容摘要: 算法是解决问题的系统化步骤,不同的问题…...
git相关
1.将 dev 变基到 origin/master git rebase 是一个本地操作,它只会修改你当前所在分支的提交历史,而不会直接影响远程仓库或任何其他分支。 保持提交历史的线性和整洁: 这是 git rebase 最主要的目的。 想象一下 dev 分支是从 master 分支分…...
Web端项目系统访问页面很慢,后台数据返回很快,网络也没问题,是什么导致的呢?
Web端访问缓慢问题诊断指南(测试工程师专项版) ——从浏览器渲染到网络层的全链路排查方案 一、问题定位黄金法则(前端性能四象限) 1. [网络层] 数据返回快 ≠ 资源加载快(检查Content Download时间) 2. [渲染层] DOM复杂度与浏览器重绘(查看FPS指标) 3. [执行层…...
计算机系统结构-第九章-互联网络 第十章
目录 恒等函数:I(没变) 交换函数:某一位取反 如下 角标为0,第0位取反 均匀洗牌函数、混洗函数Shuffle :σ 左移一位 (左移右边补0,右移左边补0) 蝶式互连函数but…...
H5 移动端适配最佳实践落地指南。
文章目录 前言一、为什么需要移动端适配?二、核心适配方案1. 视口(Viewport)设置2. 三种适配方案 (仅供参考)(1)rem 适配方案(2)vw/vh 适配方案(3)…...
从电动化到智能化,法雷奥“猛攻”中国汽车市场
当前,全球汽车产业正在经历前所未有的变革,外资Tier1巨头开始向中国智能电动汽车市场发起新一轮“猛攻”。 在4月23日-5月2日上海国际车展期间,博世、采埃孚、大陆集团、法雷奥等全球百强零部件厂商纷纷发布战略新品与转型计划。在这其中&am…...
智能网联汽车 “中央计算” 博弈:RTOS 与跨域融合的算力分配挑战
一、引言 随着智能驾驶技术的飞速发展,汽车逐渐从传统的交通工具演变为移动的智能终端。智能网联汽车的核心竞争力日益体现在其强大的计算能力和高效的算力管理上。汽车电子电气架构(EEA)正经历从分布式架构向 “中央计算 区域控制” 架构的…...
springboot 加载 tomcat 源码追踪
加载 TomcatServletWebServerFactory 从 SpringApplication.run()方法进入 进入到 refresh () 方法 选择实现类 ServletWebServerApplicationContext 进入到 AbstractApplicationContext onRefresh() 方法创建容器 找到加载bean 得到 webServer 实例 点击 get…...
AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月9日第72弹
从今天开始,咱们还是暂时基于旧的模型进行预测,好了,废话不多说,按照老办法,重点8-9码定位,配合三胆下1或下2,杀1-2个和尾,再杀6-8个和值,可以做到100-300注左右。 (1)定…...
企业高性能WEB服务器—Nginx
Nginx介绍 Nginx是一款轻量级的网页服务器、反向代理服务器以及电子邮件代理服务器。 具有高并发(特别是静态资源)、占用系统资源少的特性。它不仅是Web服务软件,还具有反向代理负载均衡功能和缓存服务功能 具备如下基本特性 可针对静态资…...
neo4j图数据库基本概念和向量使用
一.节点 1.新建节点 create (n:GroupProduct {name:都邦高保额团意险,description: "保险产品名称"} ) return n CREATE:Neo4j 的关键字,用于创建新节点或关系。 (n:GroupProduct): n 是节点的临时别名(变量名&#…...
安全核查基线-3.用户umask设置策略
在Linux中,umask(用户文件创建掩码)是一个重要的权限管理机制,用于控制新创建的文件和目录的默认权限。umask的值决定了文件或目录的初始权限中哪些权限位会被屏蔽(即不可用)。 1. umask 的作用 文件默认权…...
UE像素流是什么
UE像素流是什么 UE像素流送是一种云渲染技术,由虚幻引擎(UE)提出,用于在浏览器中运行高画质3D应用或游戏。其原理是在远程计算机(可以是云端服务器或本地高性能服务器)上运行UE开发的应用程序,…...
【C】初阶数据结构14 -- 归并排序
本篇文章主要是讲解经典的排序算法 -- 归并排序 目录 1 递归版本的归并排序 1) 算法思想 2) 代码 3) 时间复杂度与空间复杂度分析 (1) 时间复杂度 (2) 空间复杂度 2 迭代版本的归并…...
02_线性模型(回归线性模型)
描述 线性模型是在实践中广泛使用的一类模型,线性模型利用输入特征的线性函数(linear function)进行预测。 用于回归的线性模型 对于回归问题,线性模型预测的一般公式如下: $ \widehat y w[0]*x[0]w[1]*x[1]…w[p…...
当当网Top500书籍信息爬取与分析
爬取当当网的Top500书籍信息,并对书籍的评价数量进行排序,然后绘制前十名的条形图,然后对各个出版社出版的书籍数量进行排序,绘制百分比的饼图 # 导入所需的模块 import re # 正则表达式模块,用于提取文本中的特定模…...
Spring生态全景解析:Spring、Spring MVC、SpringBoot与Spring Cloud的关系
Spring生态全景解析:Spring、Spring MVC、SpringBoot与Spring Cloud的关系 1. Spring框架简介 Spring框架是一个轻量级的Java开发框架,由Rod Johnson于2003年创建。它主要解决了企业级Java开发中的复杂性,通过依赖注入(DI)和面向切面编程(A…...
STM32-TIM定时中断(6)
目录 一、TIM介绍 1、TIM简介 2、定时器类型 3、基本定时器 4、通用定时器 5、定时中断基本结构 6、时基单元的时序 (1)预分频器时序 (2)计数器时序 7、RCC时钟树 二、定时器输出比较功能(PWM) …...
Godot4.3类星露谷游戏开发之【昼夜循环】
千里之行,始于足下 文章目录 零、 笔记一、创造时间二、产生颜色三、搭建测试环境四、测试五、免费开源资产包 零、 笔记 为了让游戏可以拥有白天和黑夜,我们需要像上帝一样,在游戏中创造时间的规则,并在不同的时间点产生不同的颜…...
工业与协议融合篇:如何将多个协议集成进一个系统?
🏭 本文为《嵌入式通信协议全解析》第六篇,深入探讨如何在工业或物联网系统中同时集成 BLE、CAN、LoRa、MQTT、RS485 等多种通信协议,实现一个高效、可控、稳定运行的嵌入式通信架构。 🧭 一、为什么需要多协议融合? 在真实产品中,单一通信协议往往无法满足所有业务需…...
java-----------------多态
多态,当前的成指的是 java 所呈现出来的一个对象 多态 定义 多态是指同一个行为具有多个不同表现形式或形态的能力。在面向对象编程中,多态通过方法重载和方法重写来实现。 强弱类型语言 javascript 或者python 是弱类型语言 C 语言,或…...
vLLM部署Qwen2-7B模型推理
vllm简介 vLLM是一个高效的大语言模型推理和部署服务系统,专为大型语言模型的高效执行而设计。它不仅支持多种量化技术以减少模型大小和加速推理过程,还提供了与OpenAI API兼容的服务接口,使得现有的应用程序能够无缝对接。 一、前提环境 …...
SSL证书格式详解:PEM、CER、DER、JKS、PKCS12等
引言 在网络安全领域,SSL/TLS证书是保障互联网通信安全的核心工具。它们通过加密连接,确保服务器与客户端之间的数据隐私和完整性。然而,对于初学者来说,SSL证书的多种格式——PEM、CER、JKS、PKCS12、PFX等——常常令人困惑。每…...
idea spring boot 打包成可执行的 JAR包
idea 2023 spring boot 2.6.13 打包成可执行的 JAR包 创建一个 简单的 spring boot 程序 idea File — New — Project 11 22 11 package com.example.demo.controller;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.b…...
设计模式-迭代器模式
写在前面 Hello,我是易元,这篇文章是我学习设计模式时的笔记和心得体会。如果其中有错误,欢迎大家留言指正! 案例 假设有一个Book类和一个管理书籍的BookCollection类,我们需要遍历BookCollection类中所有书籍信息。 一…...
Java 匿名内部类的作用
简化代码:无需专门定义一个具名类来实现接口或继承类,减少类文件数量,在只需简单实现特定功能时,让代码更简洁紧凑 。比如创建线程时,使用匿名内部类实现 Runnable 接口,直接在代码块中编写线程执行逻辑&am…...
MySQL数据库故障排查与解决方案
一、故障排查流程图 #mermaid-svg-hF8hhP2lrqWDbNhV {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-hF8hhP2lrqWDbNhV .error-icon{fill:#552222;}#mermaid-svg-hF8hhP2lrqWDbNhV .error-text{fill:#552222;stroke:…...
C#学习——继承、封装、多态
一、继承 1)什么是继承? 官方话:允许一个类继承另一个类的字段和方法 个人理解:子类可以使用父类已经授权的所有字段和方法,子承父业 2)使用方式 方式:子类:父类 class…...
数据库基础:概念、原理与实战示例
在当今信息时代,数据已经成为企业和个人的核心资产。无论是社交媒体、电子商务、金融交易,还是物联网设备,几乎所有的现代应用都依赖于高效的数据存储和管理。数据库(Database)作为数据管理的核心技术,帮助…...
AI与计算机视觉(CV):目标检测与图像分割的最新进展
AI与计算机视觉(CV):目标检测与图像分割的最新进展 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 AI与计算机视觉(CV):目标检测与图像分割的…...
嵌入式开发学习日志Day17
第十一章 结构体与共用体 一、结构体 1、结构体 一般形式 【struct 标识符】 结构体中的标识符一般首字母大写; 【.】结构体成员运算符; 优先级 1 级 结合方向:从左至右; 【->】:指向结构体成员运算符&#x…...
awesome-digital-human本地部署及配置:打造高情绪价值互动指南
在数字化交互的浪潮中,awesome-digital-human-live2d项目为我们打开了本地数字人互动的大门。结合 dify 聊天 api,并借鉴 coze 夸夸机器人的设计思路,能为用户带来充满情绪价值的交互体验。本文将详细介绍其本地部署步骤、dify 配置方法及情绪…...
ClickHouse多表join的性能优化:原理与源码详解
本文将从底层原理和源代码的角度详细解释 ClickHouse 多表 JOIN 的处理过程,尽量用通俗移动的语言,让初学者也能理解。本文会分步骤推导,涵盖 JOIN 的原理、实现方式、关键代码逻辑以及优化机制,同时确保逻辑清晰、内容全面。最后…...
国产Excel处理控件Spire.XLS系列教程:C# 将Excel文件转换为Markdown格式
Microsoft Excel 是一款强大的数据管理工具,广泛用于数据处理和分析。然而,其专有格式(如 XLS 和 XLSX)在不同平台之间共享时,常常面临兼容性问题。相比之下,Markdown 是一种轻量级的标记语言,因…...
C++线程库
1. 基本概念 1.1 线程(Thread) 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一个进程可以并发多个线程,每条线程并行执行不同的任务。 1.2 并发与并行 并发(Concurren…...
Missashe计网复习笔记(随时更新)
Missashe计算机网络复习笔记 前言:这篇笔记用于博主对计网这门课所学进行记录和总结,也包括一些个人的理解。正在更新当中…… 第一章 计算机网络体系结构 考纲内容 (一) 计算机网络概述 计算机网络的概念、组成与功能;计算机网络的分类; 计算机网络…...
解决osx-arm64平台上conda默认源没有提供 python=3.7 的官方编译版本的问题
CONDA_SUBDIRosx-64 conda create -n py37_env python3.7 是一个用于创建特定架构环境的命令,主要针对 macOS 系统。下面为你详细解析它的功能和作用: 命令功能解析 这个命令的主要功能是创建一个名为 py37_env 的 Conda 环境,并且指定该环…...
Cjson格式解析与接入AI大模型
JSON格式的解析与构造 基本概念 JSON是JavaScript Object Notation的简称,中文含义为“JavaScript 对象表示法”,它是一种数据交换的文本格式,而不是一种编程语言。 JSON 是一种轻量级的数据交换格式,采用完全独立于编程语言的…...
RocketMQ 深度解析:架构设计与最佳实践
在分布式系统架构日益复杂的今天,消息中间件作为系统间通信的桥梁,扮演着至关重要的角色。RocketMQ 作为阿里开源的高性能分布式消息中间件,凭借其卓越的性能、丰富的功能以及高可用性,在电商、金融、互联网等众多领域得到广泛应用…...
【Light】帕多瓦大学超表面技术:开启矢量光束相位偏振定制新时代
01 前言 近年来,完美涡旋光束(Perfect Vortex Beams)因其独特的环形强度分布和与拓扑电荷无关的特性,成为研究热点。然而,传统方法在生成此类光束时面临相位和偏振控制的挑战,通常需要复杂的光学系统或多重…...
2021-11-15 C++下一个生日天数
缘由c今日日期到生日天数-编程语言-CSDN问答 int isLeap(int year)//判断闰年 {//缘由https://ask.csdn.net/questions/7567048?spm1005.2025.3001.5141return ((!(year % 4) && year % 100) || !(year % 400)); } int daysInMonth(int year, int month)//返回月天数…...
基于nodejs + Koa +Nuxt3的订单系统项目实战
以下是一个基于 Node.js Koa Nuxt3 的订单系统项目实战指南,包含关键实现步骤和代码示例: 一、项目架构设计 project/ ├── backend/ # Koa 后端 │ ├── config/ # 配置文件 │ ├── controllers/ # 控制器 │ ├──…...
# YOLOv2:目标检测的升级之作
YOLOv2:目标检测的升级之作 在目标检测领域,YOLO(You Only Look Once)系列算法以其高效的速度和创新的检测方式受到了广泛关注。今天,我们就来深入探讨一下 YOLOv2,看看它是如何在继承 YOLOv1 的基础上进行…...
国债收益率、需求与抛售行为的逻辑解析
国债收益率、需求与抛售行为的逻辑解析 1. 国债收益率的定义 国债收益率是衡量国债投资回报的核心指标,分为两种常见计算方式: 当前收益率(Current Yield):年利息收入 债券当前市场价格 例如:面值100元、…...
使用Python和TensorFlow实现图像分类的人工智能应用
最近研学过程中发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击链接跳转到网站人工智能及编程语言学习教程。读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。下面开始对正文内容的…...
嵌入式培训之C语言学习完(十七)结构体、共用体、枚举、typedef关键字与位运算
目录 一、结构体(struct关键字) (一)声明一个结构体数据类型 (二)结构体的成员初始化与赋值 a、结构体变量赋值 b、结构体成员初始化 c、结构体的定义形式 (三)考点ÿ…...
cilium路由模式和aws-eni模式下的IPAM
来看Cilium路由的几种核心模式。 封装模式(overlay) 首先是最基础的封装模式。这是默认情况下,如果你没有特别配置,Cilium会自动运行的模式。它的最大特点就是对底层网络环境的要求非常低,可以说是开箱即用。具体怎么…...
深入理解 Java 代理模式:从基础到实战
在软件开发的世界里,设计模式是程序员智慧的结晶,它们为解决常见问题提供了经过验证的最佳实践。代理模式作为一种常用的结构型设计模式,在 Java 开发中有着广泛的应用。本文将深入探讨 Java 代理模式,从基本概念、分类、实现原理…...
Python毕业设计219—基于python+Django+vue的房屋租赁系统(源代码+数据库+万字论文)
毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于pythonDjangovue的房屋租赁系统(源代码数据库万字论文)219 一、系统介绍 本项目前后端分离,分为租客、房东、管理员三种角色 1、租客: 注册、登录、公…...
Spring Boot 框架概述
1. 简介 Spring Boot 是由 Pivotal 团队开发的一个用于简化 Spring 应用开发的框架。它通过提供默认配置、嵌入式服务器和自动配置等特性,让开发者能够更快速地构建独立的、生产级别的 Spring 应用。 Spring Boot 的主要特点包括: 快速创建独立的 Spri…...