- 博客(120)
- 资源 (11)
- 收藏
- 关注
原创 《嵌入式AI筑基笔记04:python函数与模块01—从C的刻板到Python的灵动》
写了十几年C,习惯了函数必声明类型、返回值只能一个。直到遇见Python,才发现函数可以这么灵活:不声明类型、返回多个值、参数可缺省、函数内还能定义函数。本文从C程序员视角,拆解Python函数的核心机制,帮你避开常见的坑。
2026-04-01 07:59:39
509
原创 《嵌入式AI筑基笔记02:Python数据类型01,从C的“硬核”到Python的“包容”》
从C到Python,最大的变化不是语法,而是思维,python世界里内存自动管理,数据结构开箱即用,代码行数大幅减少。但自由的背后是规则——理解可变与不可变、有序与无序,才能真正用好Python的数据结构。
2026-03-19 10:24:01
397
原创 《嵌入式AI筑基笔记03:Python流程控制,从C的严谨到Python的简洁》
C语言的流程控制,靠的是括号、花括号和严谨的语法;Python则用缩进、冒号和更人性化的关键字,让代码如诗般简洁。
2026-03-17 21:24:06
290
原创 《嵌入式AI筑基笔记02:Python数据类型02,从C的“硬核”到Python的“包容”》
从C到Python,最大的变化不是语法,而是思维,python世界里内存自动管理,数据结构开箱即用,代码行数大幅减少。但自由的背后是规则——理解可变与不可变、有序与无序,才能真正用好Python的数据结构。
2026-03-16 08:30:18
395
原创 《嵌入式AI筑基笔记01:Python语法,一个C视角的翻译》
写了十几年C,转学Python才发现处处是坑?本文用C程序员视角逐条对比语法差异,总结7条必知潜规则。关注我,一起从底层跨界AI!
2026-03-08 19:50:19
318
原创 《AI学习计划:一个奔四嵌入式工程师的“自救”指南》
如果你也正在迷茫,也想在这个时代里对AI多一些掌控感,欢迎一起交流。我们时而分享心得,时而互相打气——讨论,本就是最好的学习。
2026-03-07 13:05:27
280
原创 选择排序和计数排序
选择排序和计数排序选择排序定义选择排序是一种简单直观的排序算法。它的基本思想是在每一趟遍历中找到未排序部分中的最小元素,并将其放到正确的位置上。操作步骤初始化:设数组长度为 n。外层循环:控制需要选择的位置 i,从 0 到 n-2。在每一轮 i 中,假设前 i 个元素已经排好序,剩下的部分是从 i 到 n-1 的子数组。内层循环:在当前未排序的部分中找到最小(大)值的位置 min_index(ma...
2025-02-21 16:08:49
844
原创 <span class=“js_title_inner“>选择排序和计数排序</span>
从第 2 个元素开始,遍历序列,找到剩下序列中的最大值(8),将其与第 2 个元素(8)交换。选择排序是一种简单直观的排序算法。从第 3 个元素开始,遍历序列,找到剩下序列中的最大值(7),将其与第 3 个元素(5)交换。从第 5 个元素开始,遍历序列,找到剩下序列中的最大值(6),将其与第 5 个元素(2)交换。从第 6 个元素开始,遍历序列,找到剩下序列中的最大值(5),将其与第 6 个元素(2)交换。从第 7 个元素开始,遍历序列,找到剩下序列中的最大值(3),将其与第 7 个元素(3)交换。
2025-02-21 16:08:49
646
原创 快速排序的缺陷及优化
快速排序(Quick Sort)是一种基于分治法的排序算法,由Tony Hoare于1960年提出。其基本思想是通过多次划分操作将一个数组分成较小的子数组,每个子数组中的元素比基准值更接近其最终位置。
2025-02-20 11:35:36
1222
原创 <span class=“js_title_inner“>快速排序的缺陷及优化</span>
3. 假设 left 指针找到数据,right 指针未找到,此时 right 移动到 left 指针位置结束遍历,指向数据本身应该交换到基准值右边,所以交换基准值和 right 指向值是合理的。假设 right 指针找到数据,left 指针未找到,此时 left 移动到 right 指针位置结束遍历,指向数据本身应该交换到基准值左边,所以交换基准值和 left 指向值是合理的。选定基准值,arr[0] = 3 (第 1 个元素)作为基准值,prev 指向基准值,curr 指向基准值的下一 1 个数据位置。
2025-02-20 11:12:29
618
原创 从插入排序到希尔排序
从插入排序到希尔排序插入排序原理插入排序是一种简单直观的排序算法,其基本思想是通过将每个元素逐个插入到已排序的部分中,逐步构建一个有序序列。操作步骤初始化:将第 1 个元素视为已经有序的部分(初始时长度为 1)。遍历数组:从第 2 个元素开始,依次将其视为待插入的“新”元素。查找位置:在已排序部分中找到该元素的正确位置,并将其插入到适当的位置。从已排序部分的末尾向前查找,找到第 1 个小(大)于等...
2025-02-14 21:09:46
984
原创 <span class=“js_title_inner“>从插入排序到希尔排序</span>
希尔排序主要还是引入了分组的概念,通过分组将序列拆分成小序列,并且根据间隔实现远距离数据的快速排序,从而减少数据比较与移位的处理,降低时间复杂度。:在内层循环中,如果当前已排序部分的第一个元素已经小于等于待插入元素,则无需继续比较,直接结束内层循环。在某些特定的数据分布下,希尔排序的时间复杂度可能退化到O(n²),这与普通的插入排序相当,无法发挥其高效的理论优势。希尔排序是一种改进的插入排序,它允许在远距离的元素之间进行比较和交换,从而减少排序的时间复杂度。希尔排序的性能严重依赖于步长序列的选择。
2025-02-14 21:09:46
634
原创 冒泡排序的缺陷及优化
冒泡排序的缺陷及优化定义:冒泡排序(Bubble Sort)是一种简单且常用的排序算法。其基本思想是通过多次遍历待排序的序列,依次比较相邻的两个元素,并根据需要交换它们的位置,使得较大的元素逐渐向后移动,较小的元素逐渐向前移动。这个过程类似于水中的气泡逐渐上升,因此得名“冒泡排序”。操作步骤比较第 1 个和第 2 个元素,按大小排序。移动到下 1 个对(第 2 和第 3),继续比较和排序。重复这...
2025-02-13 17:57:04
949
原创 <span class=“js_title_inner“>冒泡排序的缺陷及优化</span>
其基本思想是通过多次遍历待排序的序列,依次比较相邻的两个元素,并根据需要交换它们的位置,使得较大的元素逐渐向后移动,较小的元素逐渐向前移动。由上图可以看出,在第 1 轮遍历完成,就已经得到我们需要的排序顺序,此时第 2 、3、4 轮遍历数据完全无交换过程(浪费时间)。当某一轮遍历数据完全无交换即可表示此时我们的排序已完成,可以完全跳过后序遍历。在每 1 轮中进行 2 次扫描——从左到右将较大的元素移到右边,再从右到左将较小的元素移到左边。在冒泡的基础上,加入短路判断,若当前排序已完成,提前退出排序。
2025-02-13 17:57:04
629
原创 <span class=“js_title_inner“>冒泡排序的缺陷及优化</span>
其基本思想是通过多次遍历待排序的序列,依次比较相邻的两个元素,并根据需要交换它们的位置,使得较大的元素逐渐向后移动,较小的元素逐渐向前移动。由上图可以看出,在第 1 轮遍历完成,就已经得到我们需要的排序顺序,此时第 2 、3、4 轮遍历数据完全无交换过程(浪费时间)。当某一轮遍历数据完全无交换即可表示此时我们的排序已完成,可以完全跳过后序遍历。在每 1 轮中进行 2 次扫描——从左到右将较大的元素移到右边,再从右到左将较小的元素移到左边。在冒泡的基础上,加入短路判断,若当前排序已完成,提前退出排序。
2025-02-13 17:57:04
578
原创 斐波那契数求解引发的思考
定义:斐波那契数列是指这样一个数列:0,1,1,2,3,5,8,13,21,34,55……这个数列从第3项开始 ,每一项都等于前两项之和。表达式:F(n) = F(n-1) + F(n-2)。基例:F(0) = 0,F(1) = 1。求解方法 1. 递归法代码使用递归的方法,编写代码如下/*** @ 方法 1:递归的方法* @ num - 用于求解的斐波那契数参数* @ 返回...
2025-02-12 17:49:04
608
原创 设计UI - Adobe xd剪切蒙版
剪切蒙版剪切蒙版是一个可以用其形状遮盖其他图稿的对象,因此使用剪切蒙版,您只能看到蒙版形状内的区域,从效果上来说,就是将图稿裁剪为蒙版的形状。简单来说就是通过组合,显示下方形状范围内上面图片的内容。
2023-03-23 09:00:12
4551
原创 <span class=“js_title_inner“>设计UI - Adobe xd剪切蒙版</span>
剪切蒙版是一个可以用其形状遮盖其他图稿的对象,因此使用剪切蒙版,您只能看到蒙版形状内的区域,从效果上来说,就是将图稿裁剪为蒙版的形状。简单来说就是通过组合,显示下方形状范围内上面图片的内容。方法二操作步骤:选中矢量图形和图片,右键->带有形状的蒙版;图片和矢量图形组合:无论图片在上还是在下,均显示矢量图形范围内的图片内容。矢量图形和矢量图形组合:上方矢量图形作为范围,下方矢量图形作为显示内容。方法一操作步骤:画出矢量图形,将图片直接拖入矢量图形内即可。操作步骤:双击图片,进行位置和大小调整。
2023-03-23 09:00:12
13
原创 <span class=“js_title_inner“>设计UI - Adobe xd文本和钢笔</span>
操作步骤:选择选择工具,双击路径,点击路径锚点可以修改锚点路径,也可按del键删除锚点。同时在路径其它区域也可增加锚点。当线条端点重合时,自动闭合路径,退出钢笔工具,当绘制完成后,也可选择钢笔工具,在路径上添加锚点且改变路径。区域文本,点击文本工具,快捷键T,点击画板,在画板位置拖动鼠标,划出区域,然后输入对应的文本即可。操作步骤:点文本,选择文本工具,快捷键T,点击画板,在画板位置,输入对应的文本即可。操作步骤:选择文本,在右侧边栏,选择对应的字体,字号,以及是否加粗等。别忘了答应自己要的远方。
2023-03-13 20:13:01
27
原创 <span class=“js_title_inner“>设计UI - Adobe xd画板及参考线</span>
操作步骤:选中画板,勾选版面,设置列宽,间距,以及上下左右边距等参数,也可以设置布局网格颜色及透明度。操作步骤:选择画板,右键选择显示或隐藏布局网格,快捷键shift+ctrl+’用于显示或隐藏布局网格。操作步骤:选中画板工具,选择需要建立的画板模版,没有则拖动鼠标建立画板,然后输入宽度和高度即可。操作步骤:选中画板,右键画板->参考线->锁定所有参考线。快捷键:shift+ctrl+;操作步骤:选择要复制参考线的画板,右键->参考线->复制参考线;选择要粘贴参考线的画板,右键->参考线->粘贴参考线。
2023-03-08 22:28:55
15
原创 浅谈linux - cond条件变量应用
条件变量不是一个把锁,它实质上一个类似信号的东西,与锁相互配合使用,因为锁所能达到的功能就只有加锁和解锁,并不能实现线程之间的一些关联,于是条件变量就出现了,与锁相互配合使用。这与共享内存与信号量配合使用有些许相似之处。
2022-12-02 08:57:04
391
原创 浅谈linux - mutex锁应用
概述互斥锁是专门用于处理线程之间互斥关系的一种方式,它有两种状态:上锁状态、解锁状态。如果互斥锁处于上锁状态,那么再上锁就会阻塞到这把锁解开为止,才能上锁。解锁状态下依然可以解锁,不会阻塞。注意另外,小编所有文章均是自己亲手编写验证,由于文件太多,小编就不在公众号后台一一回复列举了,若需要小编的工程代码,请关注公众号,后台回复需要的工程文件。小编看到后会第一时间回复。接口初始化锁静态初始化/**...
2022-12-01 09:07:53
677
原创 浅谈linux - RT Linux解决方案
RT-Linux(Real-Time Linux)亦称作实时 Linux,是 Linux 中的一种硬实时操作系统
2022-11-29 11:20:58
11991
原创 浅谈linux - samba实现linux与windows文件共享
Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享
2022-11-28 10:36:11
2674
3
原创 浅谈linux - vs code搭建运行调试环境
在Linux开发过程中,用不惯vim的用户往往会选择vs code软件或者source insight软件编写相关的源代码,由于vs code对linux系统的支持及界面的美观,所以小编往往会选择使用vs code来编写代码,但是,代码编写完成后,需要进行调试,除了gdb还有没有其它方式呢?答案是肯定有,vs code结合gdb就可以实现在线调试功能。
2022-11-08 11:45:49
1588
原创 我用C语言玩对象,封装相似算法的策略模式
在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。
2022-08-25 16:26:19
556
原创 通信协议 - ARINC615A加卸载协议
ARINC615A加卸载端系统由加载端软件和目标端软件组成,通过加载端软件和目标端软件的通信共同完成端系统设备的数据加卸载功能。加载端软件运行于大容量设备中,被加载端即目标端软件运行于AFDX交换机内和其他端系统设备中。
2022-08-24 09:00:54
12237
6
原创 通信协议 - ntp时间同步
NTP(Network Time Protocol)网络时间协议基于UDP,用于网络时间同步的协议,使网络中的计算机时钟同步到UTC,再配合各个时区的偏移调整就能实现精准同步对时功能。提供NTP对时的服务器有很多,比如微软的NTP对时服务器,利用NTP服务器提供的对时功能,可以使我们的设备时钟系统能够正确运行。
2022-08-23 13:56:37
3368
原创 开发工具 - 设置vs code主题
不可否认,良好的界面风格能给程序员带来更好的软件体验。对于小编这种颜值至上的人来说,一个高颜值的软件会让人心情愉悦,编写代码效率提高。这也是VS code和Source Insight软件的对比优势之一。...
2022-07-28 09:00:45
2535
原创 开发工具 - Ubuntu版本VS code离线安装
概述VSCode(全称:Visual Studio Code)是一款由微软开发且跨平台的免费源代码编辑器。该软件支持语法高亮、代码自动补全(又称 IntelliSense)、代码重构、查看定义功能,并且内置了命令行工具和 Git 版本控制系统。用户可以更改主题和键盘快捷方式实现个性化设置,也可以通过内置的扩展程序商店安装扩展以拓展软件功能。VS Code 使用 Monac.........
2022-07-26 10:52:32
3238
3
原创 实时系统vxWorks - tcp客户端通讯
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
2022-06-30 12:14:19
1220
4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅