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

【软考】希尔排序算法分析

目录

          • 1. c代码
          • 2. 运行截图
          • 3. 运行解析

1. c代码
#include <stdio.h>
#include <stdlib.h> void shellSort(int data[], int n){// 划分的数组,例如8个数则为[4, 2, 1]int *delta;int k;// i控制delta的轮次int i;// 临时变量,换值int temp;int dk;int j;k = n;delta = (int *)malloc(sizeof(int)*(n/2));i = 0;do{// 不断除以2k = k / 2;delta[i] = k;printf("%d ", delta[i]);i++;}while(k > 1);printf("\n");i = 0;dk = delta[i];while(dk > 0){for(k = delta[i]; k < n; ++k){// data[k-dk]是靠前的数,data[k]是靠后的数if(data[k] < data[k-dk]){// 用临时变量temp暂存小的数temp = data[k];// for(j = k - dk; j >= 0 && temp < data[j]; j -= dk){data[j+dk] = data[j];}data[j+dk] = temp;}// 打印printf("排序后的数组: ");for (int a = 0; a < n; a++) {printf("%d ", data[a]);}printf("\n");}++i;dk = delta[i];}
}int main(int argc, char const *argv[]){int data[10] = {48, 37, 64, 96, 75, 12, 26, 48, 54, 3};// 数组长度int n = sizeof(data) / sizeof(data[0]);shellSort(data, n);// 打印printf("排序后的数组: ");for (int i = 0; i < n; i++) {printf("%d ", data[i]);}return 0;
}
2. 运行截图

在这里插入图片描述

3. 运行解析
1.从main方法开始
2.待排序数组为: {48, 37, 64, 96, 75, 12, 26, 48, 54, 03}
3.数组长度:int n = sizeof(data) / sizeof(data[0]) = 10/1=10
4.执行shellSort(data, n)
5.k=n=10, i=0
6.delta[0]=10/2=5
7.delta[1]=5/2=2
8.delta[2]=2/2=1
9.dk=delta[i]=delta[0]=5
10.此时dk>0成立,进入while循环11.k=delta[0]=5
12.k<n即5<10成立,进入第一个for循环
13.data[k]=data[5]=12
14.data[k-dk]=data[5-5]即data[0]=48
15.data[k]<data[k-dk]即12<48成立,进入if语句
16.temp=data[k]即temp=data[5]=12
17.j=k-dk=5-5=0
18.j>=0成立
19.data[j]即data[0]=48
20.temp<data[j]即12<48成立,进入第二个for循环
21.data[j+dk]=data[j]即data[j+dk]=data[1],j+dk=5,即data[5]=48
22.j=j-dk=0-5=-5
23.j>=0即-5>=0不成立,跳出第二个for循环
24.data[j+dk]=temp即data[-5+5]=data[0]=12
25.此时data[0]=12,data[5]=48,数组为:{12, 37, 64, 96, 75, 48, 26, 48, 54, 03}
26.k=k+1=5+1=627.k<n即6<10成立,接着第一个for循环
28.data[k]=data[6]=26
29.data[k-dk]=data[6-5]即data[1]=37
30.data[k]<data[k-dk]即26<37成立,进入if语句
31.temp=data[k]即temp=data[6]=26
32.j=k-dk=6-5=1
33.j>=0成立
34.data[j]=data[1]=37
35.temp<data[j]即26<37成立,进入第二个for循环
36.data[j+dk]=data[j]即data[j+dk]=data[1],j+dk=6,即data[6]=37
37.j=j-dk=1-5=-4
38.j>=0即-4>=0不成立,跳出第二个for循环
39.data[j+dk]=temp即data[-4+5]=data[1]=26
40.此时data[1]=26,data[6]=37,数组为:{12, 26, 64, 96, 75, 48, 37, 48, 54, 03}
41.k=k+1=6+1=742.k<n即7<10成立,接着第一个for循环
43.data[k]=data[7]=48
44.data[k-dk]=data[7-5]即data[2]=64
45.data[k]<data[k-dk]即48<64成立,进入if语句
46.temp=data[k]即temp=data[7]=48
47.j=k-dk=7-5=2
48.j>=0成立
49.data[j]=data[2]=64
50.temp<data[j]即48<64成立,进入第二个for循环
51.data[j+dk]=data[j]即data[j]=data[2],j+dk=7,即data[7]=48
52.j=j-dk=2-5=-3
53.j>=0即-3>=0不成立,跳出第二个for循环
54.data[j+dk]=temp即data[-3+5]=data[2]=48
55.此时data[2]=48,data[7]=64,数组为:{12, 26, 48, 96, 75, 48, 37, 64, 54, 03}
56.k=k+1=7+1=857.k<n即8<10成立,接着第一个for循环
58.data[k]=data[8]=54
59.data[k-dk]=data[8-5]=data[3]=96
60.data[k]<data[k-dk]即54<96成立,进入if语句
61.temp=data[k]即temp=data[8]=54
62.j=k-dk=8-5=3
63.j>=0成立
64.data[j]=data[3]=96
65.temp<data[j]即54<96成立,进入第二个for循环
66.data[j+dk]=data[j]即data[j+dk]=data[3],j+dk=8,即data[8]=96
67.j=j-dk=3-5=-2
68.j>=0即-2>=0不成立,跳出第二个for循环
69.data[j+dk]=temp即data[-2+5]=data[3]=54
70.此时data[3]=54,data[8]=96,数组为:{12, 26, 48, 54, 75, 48, 37, 64, 96, 03}
71.k=k+1=8+1=972.k<n即9<10成立,接着第一个for循环
73.data[k]=data[9]=3
74.data[k-dk]=data[9-5]=data[4]=75
75.data[k]<data[k-dk]即3<75成立,进入if语句
76.temp=data[k]即temp=data[9]=3
77.j=k-dk=9-5=4
78.j>=0成立
79.data[j]=data[4]=75
80.temp<data[j]即3<75成立,进入第二个for循环
81.data[j+dk]=data[j]即data[j+dk]=data[4],j+dk=9,即data[9]=75
82.j=j-dk=4-5=-1
83.j>=0即-1>=0不成立,跳出第二个for循环
84.data[j+dk]=temp即data[-1+5]=data[4]=3
85.此时data[4]=3,data[9]=75,数组为:{12, 26, 48, 54, 03, 48, 37, 64, 96, 75}
86.k=k+1=9+1=1087.k<n即10<10不成立,跳出第一个for循环
88.i++, i=0+1=1
89.dk=delta[i]=delta[1]=2
90.dk>0成立,接着while循环
91.k=delta[1]=292.k<n即2<10成立,进入第一个for循环
93.data[k]=data[2]=48
94.data[k-dk]=data[2-2]即data[0]=12
95.data[k]<data[k-dk]即48<12不成立,不进入if语句
96.k=k+1=2+1=397.k<n即3<10成立,进入第一个for循环
98.data[k]=data[3]=54
99.data[k-dk]=data[3-2]=data[1]=26
100.data[k]<data[k-dk]即54<26不成立,不进入if语句
101.k=k+1=3+1=4102.k<n即4<10成立,进入第一个for循环
103.data[k]=data[4]=3
104.data[k-dk]=data[4-2]=data[2]=48
105.data[k]<data[k-dk]即3<48成立,进入if语句
106.temp=data[k]=data[4]=3
107.j=k-dk=4-2=2
108.j>=0成立
109.data[j]=data[2]=48
110.temp<data[j]即3<48成立,进入第二个for循环
111.data[j+dk]=data[j]=data[2],j+dk=4,即data[4]=48
112.j=j-dk=2-2=0
113.j>=0成立
114.data[j]=data[0]=12
115.temp<data[j]即3<12成立,接着第二个for循环
116.data[j+dk]=data[j]=data[0],j+dk=2,即data[2]=12
117.j=j-dk=0-2=-2
118.j>=0即-2>=0不成立,跳出第二个for循环
119.data[j+dk]=temp即data[-2+2]=data[0]=3
120.此时data[4]=48,data[2]=12,data[0]=3,数组为:{03, 26, 12, 54, 48, 48, 37, 64, 96, 75}
121.k=k+1=4+1=5122.k<n即5<10成立,接着第一个for循环
123.data[k]=data[5]=48
124.data[k-dk]=data[5-2]=data[3]=54
125.data[k]<data[k-dk]即48<54成立,进入if语句
126.temp=data[k]=data[5]=48
127.j=k-dk=5-2=3
128.j>=0成立
129.data[j]=data[3]=54
130.temp<data[j]即48<54成立,进入第二个for循环
131.data[j+dk]=data[j]即data[j]=data[3],j+dk=5,即data[5]=54
132.j=j-dk=3-2=1
133.j>=0成立
134.data[j]=data[1]=26
135.temp<data[j]即48<26不成立,跳出第二个for循环
136.data[j+dk]=temp即data[1+2]=data[3]=48
137.此时data[5]=54,data[3]=48,数组为:{03, 26, 12, 48, 48, 54, 37, 64, 96, 75}
138.k=k+1=5+1=6122.k<n即6<10成立,接着第一个for循环
123.data[k]=data[6]=37
124.data[k-dk]=data[6-2]=data[4]=48
125.data[k]<data[k-dk]即37<48成立,进入if语句
126.temp=data[k]=data[6]=37
127.j=k-dk=6-2=4
128.j>=0成立
129.data[j]=data[4]=48
130.temp<data[j]即37<48成立,进入第二个for循环
131.data[j+dk]=data[j]=data[4],j+dk=6,即data[6]=48
132.j=j-dk=4-2=2
133.j>=0成立
134.data[j]=data[2]=12
135.temp<data[j]即37<12不成立,跳出第二个for循环
136.data[j+dk]=temp即data[2+2]=data[4]=37
137.此时data[6]=48,data[4]=37,数组为:{03, 26, 12, 54, 37, 48, 48, 64, 96, 75}
138.k=k+1=6+1=7139.k<n即7<10成立,接着第一个for循环
140.data[k]=data[7]=64
141.data[k-dk]=data[7-2]=data[5]=48
142.data[k]<data[k-dk]即64<48不成立,不进入if语句
143.k=k+1=7+1=8144.k<n即8<10成立,接着第一个for循环
145.data[k]=data[8]=96
146.data[k-dk]=data[8-2]=data[6]=48
147.data[k]<data[k-dk]即96<48不成立,不进入if语句
148.k=k+1=8+1=9149.k<n即9<10成立,接着第一个for循环
150.data[k]=data[9]=75
151.data[k-dk]=data[9-2]=data[7]=64
152.data[k]<data[k-dk]即75<64不成立,不进入if语句
153.k=k+1=9+1=10154.k<n即10<10不成立,跳出第一个for循环
155.i=i+1=1+1=2
156.dk=delta[2]=1
157.k=delta[i]=delta[2]=1158.k<n即1<10成立,接着第一个for循环
159.data[k]=data[1]=26
160.data[k-dk]=data[1-1]=data[0]=3
161.data[k]<data[k-dk]即26<3不成立,不进入if语句
162.k=k+1=2163.k<n即2<10成立,接着第一个for循环
164.data[k]=data[2]=12
165.data[k-dk]=data[1]=26
166.data[k]<data[k-dk]即12<26成立,进入if语句
167.temp=data[k]=data[2]=12
168.j=k-dk=2-1=1
169.j>=0成立
170.data[j]=data[1]=26
171.temp<data[j]即12<26成立,进入第二个for循环
172.data[j+dk]=data[j]即data[j+dk]=data[1],j+dk=2,即data[2]=26173.j=j-dk=1-1=0
174.j>=0成立
175.data[j]=data[0]=3
176.temp<data[j]即12<3不成立,跳出第二个for循环
178.data[j+dk]=temp即data[0+1]=data[1]=12
179.此时data[2]=26,data[1]=12,data[0]=3,数组为:{03, 12, 26, 54, 48, 48, 37, 64, 96, 75}
180.k=k+1=3181.k<n即3<10成立,接着第一个for循环
182.data[k]=data[3]=54
183.data[k-dk]=data[3-1]=data[2]=26
184.data[k]<data[k-dk]即54<26不成立,不进入if语句
185.k=k+1=4182.k<n即4<10成立,接着第一个for循环
183.data[k]=data[4]=48
184.data[k-dk]=data[4-1]=data[3]=54
185.data[k]<data[k-dk]即48<54成立,进入if语句
186.temp=data[k]=data[4]=48
187.j=k-dk=4-1=3
188.j>=0成立
189.data[j]=data[3]=54
190.temp<data[j]即48<54成立,进入第二个for循环
191.data[j+dk]=data[j]即data[j]=data[3],j+dk=4,即data[4]=54
192.j=j-dk=3-1=2
193.j>=0成立
194.data[j]=data[2]=26
195.temp<data[j]即48<26不成立,跳出第二个for循环
196.data[j+dk]=temp即data[2+1]=data[3]=48
197.此时data[4]=54,data[3]=48,数组为:{03, 12, 26, 48, 54, 48, 37, 64, 96, 75}
198.k=k+1=4+1=5199.k<n即5<10成立,接着第一个for循环
200.data[k]=data[5]=48
201.data[k-dk]=data[5-1]=data[4]=54
202.data[k]<data[k-dk]即48<54成立,进入if语句
203.temp=data[k]=data[5]=48
204.j=k-dk=5-1=4
205.j>=0成立
206.data[j]=data[4]=54
207.temp<data[j]即48<54成立,进入第二个for循环
208.data[j+dk]=data[j]即data[j]=data[4],j+dk=5,即data[5]=54
209.j=j-dk=4-1=3
210.j>=0成立
211.data[j]=data[3]=48
212.temp<data[j]即48<48不成立,跳出第二个for循环
213.data[j+dk]=temp即data[3+1]=data[4]=48
214.此时data[5]=54,data[4]=48,数组为{03, 12, 26, 48, 48, 54, 37, 64, 96, 75}......

相关文章:

【软考】希尔排序算法分析

目录 1. c代码2. 运行截图3. 运行解析 1. c代码 #include <stdio.h> #include <stdlib.h> void shellSort(int data[], int n){// 划分的数组&#xff0c;例如8个数则为[4, 2, 1]int *delta;int k;// i控制delta的轮次int i;// 临时变量&#xff0c;换值int temp;…...

C++(一)----C++基础

1.C的发展史 C语言诞生后&#xff0c;很快普及使用&#xff0c;但是随着编程规模增大且越来越复杂&#xff0c;并且需要高度的抽象和建模时&#xff0c;C语言的诸多短板便表现了出来&#xff0c;为了解决软件危机&#xff0c;上世纪八十年代&#xff0c;计算机界提出了oop&…...

C 语言面试题大汇总之华为面试题

文章目录 1. 局部变量能否和全局变量重名?2. 如何引用一个已经定义过的全局变量?3. 全局变量可不可以定义在可被多个.C 文件包含的头文件中?为什么?4. 请写出下列代码的输出内容5. static 全局变量与普通的全局变量有什么区别?static 局部变量和普通局部变量有什么区别?s…...

Java:面向对象

继承 继承是一种面向对象编程&#xff08;OOP&#xff09;特性&#xff0c;它允许一个类&#xff08;称为子类或派生类&#xff09;继承另一个类&#xff08;称为父类或基类&#xff09;的属性&#xff08;如方法和字段&#xff09;。通过继承&#xff0c;子类可以复用父类的代…...

【区块链 + 基层治理】腾讯未来社区:区块链业主决策系统 | FISCO BCOS应用案例

腾讯未来社区是腾讯推出的智慧社区综合解决方案&#xff0c;致力于形成“互联网 社区”一站式解决方案&#xff0c;打造智慧社 区健康生态。为了解决物业管理领域的痛点&#xff0c;构建围绕居民、物业、政府和商业四个角色为核心的良好生态&#xff0c;以 信息平台及工具为纽…...

【Rust练习】13.数组

练习题来自&#xff1a;https://practice-zh.course.rs/compound-types/array.html 1 fn main() {// 使用合适的类型填空let arr: __ [1, 2, 3, 4, 5];// 修改以下代码&#xff0c;让它顺利运行assert!(arr.len() 4); }显然这个数组的长度是5. fn main() {// 使用合适的类…...

直流负载技术介绍

直流负载技术是一种用于控制和调节电力系统运行状态的重要技术。它主要通过对电力系统中的直流负载进行有效的管理和控制&#xff0c;以保证电力系统的稳定运行&#xff0c;提高电力系统的运行效率&#xff0c;降低电力系统的运行成本。 直流负载技术主要包括直流负载的检测、…...

FPGA低功耗设计

FPGA低功耗设计 文章目录 FPGA低功耗设计前言一、功耗类型1.1 动态功耗1.2 静态功耗1.3 浪涌功耗 二、系统级低功耗设计2.1 **多电压技术&#xff1a;**即工作频率、电压和功耗的关系2.2 系统时钟分配&#xff1a;2.3 软硬件划分2.4 p 或单元库选择 三、RTL级别低功耗设计3.1 并…...

Python Opencv: 基于颜色提取的印章分割

利用Python实现了一个图像处理功能&#xff0c;即批量提取图像中的印章区域&#xff1b;使用了颜色聚类的方法来提取颜色。 本代码也发布到了github&#xff0c;欢迎大家试用&#xff08;如果帮助&#xff0c;请star一下&#xff09;&#xff1a; GitHub - AICVHub/seal_seg_o…...

Codeforces Round 970 (Div. 3)(ABCDEF)

Codeforces Round 970 (Div. 3) A:Sakurakos Exams 签到 题意:给定1,2的数量,判断是否能用加减符号使得这些1,2计算出0 void solve() {cin>>n>>m;if(n%2)cout<<"NO\n";else{if(m%20||n)cout<<"YES\n";else cout<<"…...

springboot基于ssm+Jsp的人才招聘网站系统的设计与实现 jw2cs

目录 前言详细视频演示后端技术栈具体实现截图开发核心技术&#xff1a;开发工具核心代码部分展示系统设计操作可行性可行性论证试验方案源码获取 前言 &#x1f447;&#x1f3fb; 博主介绍&#xff1a;&#x1f447;&#x1f3fb; 全网粉丝50W,博客专家、CSDN特邀作者、CSDN…...

高质量共建“一带一路”!苏州金龙助力非洲交通驶向共同繁荣之旅

9月6日&#xff0c;中非合作论坛在北京落下帷幕。此次论坛&#xff0c;“高质量共建‘一带一路’”成为重要议题。截止至目前&#xff0c;苏州金龙海格客车已向阿尔及利亚、埃塞俄比亚、南非等所有参与共建“一带一路”的非洲国家累计出口客车14000台。从产品销售&#xff0c;到…...

嵌入式初学-C语言-数据结构--四

栈 1. 基本概念 栈是一种逻辑结构&#xff0c;是特殊的线性表。特殊在&#xff1a; 只能在固定的一端操作 只要满足上述条件&#xff0c;那么这种特殊的线性表就会呈现一种“后进先出”的逻辑&#xff0c;这种逻辑就被称为栈。栈 在生活中到处可见&#xff0c;比如堆叠的盘子…...

【HarmonyOS 4】应用性能优化

1. ArkTs 高性能编程 1.1 ArkTs 高性能编程规则 1.1.1 限制一些 TypeScript 的特性&#xff0c;比如需要不支持属性的动态变更、变量或参数需要明确的类型声明和返回值声明等。1.1.2 禁用 ts-ignore、ts-expect-error 等屏蔽编译校验的命令。1.1.3 开启 TypeScript 的严格模式…...

MySQL——表操作

目录 一、创建表 二、查看表 2.1 查看表中某成员的数据 2.2 查看整个表中的表成员 2.3 查看创建表时的句柄 三、修改表 alter 3.1 重命名 rename 3.2 新增一列 add 3.3 更改列属性 modify 3.4 更改列名称 change 3.5 删除某列 上一篇博客介绍了库的操作&#xff0c;…...

阅读笔记--Guiding Attention in End-to-End Driving Models(二)

端到端驾驶的注意力学习&#xff08;Attention Learning for End-to-End Driving&#xff09;关键内容学习 3.1 问题设置&#xff08;Problem Setup&#xff09; 模仿学习&#xff08;Imitation Learning, IL&#xff09;&#xff1a;介绍了模仿学习的概念&#xff0c;即通过…...

Linux: network: TCP: errno: EWOULDBLOCK

https://mzhan017.blog.csdn.net/article/details/108010013 这个errno的意思: 如果是send接口函数返回的错误,代表tcp socket的sending buffer满了,让应用程序等上一段时间重试send。 所以,这个产生的原因就不固定了: 可能是当前系统太忙,导致系统发包慢,buffer累积; 可…...

闲话“设计模式”

Q1、请详细介绍 软件架构设计模式&#xff08;智能化&#xff09;&#xff0c;应用程序设计模式&#xff08;自动化&#xff09;&#xff0c;编程语言设计模式&#xff08;人性化&#xff09;&#xff08;后面括号中 是我 希望 其 具有的特点&#xff09; 的概念&#xff0c;有…...

Sentence-BERT实现文本匹配【CoSENT损失】

引言 还是基于Sentence-BERT架构&#xff0c;或者说Bi-Encoder架构&#xff0c;但是本文使用的是苏神提出的CoSENT损失函数1。 点击来都是缘分&#xff0c;之前过时的方法可以不细看&#xff0c;别的文章可以不收藏&#xff0c;现在是最流行的方法&#xff0c;这篇文章建议收藏…...

业余考什么证书比较实用?

在业余时间里&#xff0c;获得一些有用的证书不仅能提升你的专业素养&#xff0c;还能增强你在职场上的竞争力。 特别是职业技能证书和行业认证证书&#xff0c;这两者受到了广大职场人士的高度关注。 一、业余时间考取的实用证书 行业认证证书主要针对特定行业或职业&#…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...