- 博客(52)
- 资源 (2)
- 收藏
- 关注
原创 排序类...
└── 分配排序类 (核心:利用“多关键字”分配和收集,不依赖比较) ←── 这里补上你问的“基数排序”│ └── 堆排序 (利用堆结构选最值) ←── 这里补上你问的“选择排序”├── 选择排序类 (核心:在待排序列中选出最值,放到最终位置)├── 交换排序类 (核心:通过比较并交换元素位置来排序)├── 插入排序类 (核心:将元素插入到已有序的序列中)│ └── 希尔排序 (本质:多次分组插入排序)│ ├── 简单选择排序 (直接选最值)│ ├── 直接插入排序。
2026-06-22 10:21:39
298
原创 【查找算法的实现】
判定数是一个二叉树,该二叉树的深度是log2(n)+1;如果是满二叉树 则该深度是log2(n+1),因为的深度h的树的节点个数为2^h -1;推导和理解过程:求和公式 (1-2^h)/1-2=n;2^h-1=n h=log2(n+1),ASL 的判断:折半查找的平均的长度有数的深度表示。的节点个数为(2^(h-1),2^h -1);
2026-06-22 10:12:55
389
原创 【图】 1.图的两种遍历方式
│ DFS(G, 2) │ ← 当前执行(最后一个)请输入6个顶点的信息: A B C D E F。│ DFS(G, 5) │ ← 暂停。│ DFS(G, 4) │ ← 暂停。│ DFS(G, 3) │ ← 暂停。│ DFS(G, 1) │ ← 暂停。│ DFS(G, 0) │ ← 暂停。通过栈来达到撞南墙之后返回的逻辑。请输入顶点数和边数: 6 8。
2026-06-17 14:10:38
42
原创 【无标题】
在数据没有大于maxsize的情况下,都能保存,一旦数据的大于maxsize 则就被覆盖。修正之后如下,发现数据在没有出队之前不会被新的入队数据挤占,并且不允许继续入队。4.循环队列的的优点,插入的队列的时间复杂度低,不用开辟新的空间。3.队的遍历,避免的遍历出队,用另一个变量替代该队列。如果循环队列的入队没有判断队满、队空的条件。会出现溢出的数据覆盖之前的数据。bug:出现的队列数据被覆盖,2.队满判断,队空判断;
2026-05-21 14:27:18
22
原创 linux git的配置
你可以在网页版的addfile中添加和修改文件,从而模拟远程仓库和本地仓库的变化。介于在linux 上想和github上的仓库进行通信。直接复制到github的setting 中的密钥中去。克隆远程仓库到本地 注意格式为https+你的名称。git init 在本地文件中建立一个本地仓库。如果成功克隆了一个仓库 证明链接成功;首先 安转git工具(自行搜索;复制密钥到github账户之中。github 账户和邮箱;
2026-03-02 16:14:46
110
原创 UBuntu 操作系统同时解决两个开机黑屏问题
然而不管是长按shift,还是esc或者ctrl+alt+f1~f6,我都无法找到高级选项,只能不小心进入bios或者grub命令行。2.grub 也是一种引导程序,grub与uboot的是有相同的作用,区别是=grub是用于UEFI 等PC端,uboot是使用与嵌入式设备之中。首先按住esc 进入命令行操作 ,此时cmd 输入normal 随后立即键入esc ,此时可以进入带有菜单选择的grub界面。1、按住ctrl+shift,再依次点击prt scr,R,E,I,S,U,B,执行安全重启。
2025-06-03 16:42:21
782
原创 定时器的控制
如此设置,定时器中断的时间就是 arr/1000,arr的值单位就是ms。例如分给定时器的时钟微48M ,PSC设置为 4800 ,则得到的频率是48000000/48000=1000hz.开配置时使用的时那一路时钟总线,若是APB1 则去查看APB1 的时钟频率。1.主要控制重载数器 arr,设置值微aim_arr-1 ,2.分频器 psc ,设置微aim_PSC-1 ,问题:如何确认的值定时器时钟所得到的值。
2025-05-15 11:31:42
260
原创 1.防休眠代码
本文为博主原创文章,未经博主允许,不得以任何方式转载或者演绎,如需转载请联系博主。原文链接:https://blog.youkuaiyun.com/Crezfikbd/article/details/123481158。将防锁屏.txt更名为防锁屏.vbs,然后用鼠标双击防锁屏.vbs,即可实现防止电脑自动锁屏。新建一个txt文件,比如防锁屏.txt,然后将下面的内容复制进去,并保存。
2025-04-18 17:10:39
343
原创 stm32 晶振换算
d->PLL.PLLQ 决定USB的输出,仅在USB工作频率是48M时USB 才参与工作。c->PLLN:通常决定SystemClock_Config()的函数输出。a->PLL.PLLM通常等同于晶振的大小 :外部是xMH晶振则配置为X。b->RCC_PLLP_DIV2分频系数为系统自带:设置为2。:用于高速外设(如 UART1、SPI1、TIM1):用于低速外设(如 UART2、I2C1)。A-> 我们配置的是SYSCLK() 函数。:通常为2、4、6或8。:通常范围为2到63。B-> 各总线的功能。
2025-03-13 14:53:57
519
原创 stm32 f4 flash 调用时卡死
参照此博客,如果调用flash 卡死的原因是谢日adress不准确,得到0x08010000 成功运行。
2025-03-10 19:50:43
556
原创 freeRtos 在mm32下移植问题总结
2.通过调试发现 ”xTaskIncrementTick()!= pdFALSE “条件不成立,走到了箭头所指的的分支。操作系统接管之后,会运行到这里这个中断调用 ,tick每执行一次 这里即调用一次。问题:在任务中运行两次打印时间间隔不准确。并且原来的delay_ms函数会卡死。3.接下来细看如下代码(可省略)
2025-02-20 19:40:22
371
原创 堆栈溢出的情况及其避免
在程序的调试过程中,单个程序功能正常,合并在一起的时候发现程序无法正常运行。a->程序卡死原地不动,while循环也不执行,但是其他中断函数正常运行。b->若申请的空间大于了硬件的saram 空间 也会导致堆栈溢出。b->如果是封装的函数则函数会运行到该函数结尾之后卡死。a->我出现的原因是向一个固定大小的空闲写入了过多的数据。注释部分代码正常之后调试发现 封装的函数出栈不一样。最开始以为中断冲突。2.如何避免堆栈溢出。
2025-01-21 18:18:40
431
原创 MM32操作系统移植总结
打开延时函数的定义,会发现延时函数在等在一个变量减少为1,而裸机的心跳会使得变量递减,操作系统接管之后,需要重新定义延时函数。原因:堆栈溢出,需按照datasheet来配置小于datasheet SARAM的的大小,能用的大小为全局变量的余量。应当怎加判断条件,在操作系统没有工作的的时候用CPU的心跳 ,在创建任务之后操作系统再去接管CPU的心跳。原因:在操作系统的任务没有被创建的时候,就开始了操作系统的心跳,该心跳会区遍历任务链表的任务。3.初始化时钟时一旦完成初始化会使得整个系统卡死。
2025-01-08 19:31:02
379
原创 stm32 USB驱动调试
3.再usbd_usat.h 的函数中做如下修改。2.禁用掉USB host uart的函数。a->在USB的驱动函数的添加如下。
2024-12-22 14:27:19
943
原创 初探freeRtos
需要执行本函数,该函数的意义时是删除该任务所在的列表,即便所有的函数都被删除任务调度器处于在运行空闲任务的状态,一档找到有合适的任务将会执行。总结:对于子任务的执行,要么是一个while函数,要么是一个单次执行的函数,单次执行的任务需要在函数结尾添加vTaskDelete(NULL),之后的函数也不会在执行。需要采用八路模拟的IIC来切换任务,相同优先级的情况下八路模拟IIC的输出由于时间片轮转原理会不会影响时序的精准度。在主任务的过程中需要监视任务的信号量的个数来确认是否需要进行下一步程序。
2024-12-18 19:40:02
316
原创 环形缓冲区的使用
/ 计算 cmd_start: 根据 end_index 和 RxBufLen 计算出一个 cmd_start 值。//先将 start_index 到缓冲区末尾的数据复制到 buf 中,然后将从缓冲区开头到 end_index 的数据复制到 buf 的剩余部分。
2024-12-06 19:02:58
898
原创 Linux和windows文件系统映射(转载)
我有两台PC,一台操作用的Windows,一台linux。需要在Windows上将linux中的/fdsk目录映射为网络驱动器。或者在windows 10系统中可以通过添加一个网络位置也可以挂载Linux (ubuntu-20.04.2) 的目录。这里介绍的是用samba的方式,适用的场景是linux需要是物理机。如果是虚拟机的场景我则会用sshfs的方式挂载。原文地址:https://www.cnblogs.com/liqinglucky/p/samba.html。,最后的效果是一样的。
2024-11-27 14:02:51
873
原创 【JLINK 安装mm32的HEX文件】
路径为PCIE转M.2 1V16 -release\源代码\UfsBoard\Project\Objects\UfsBoard.hex。6点击target->production progarmming进行烧录。打开j-link所在文件夹,检查Device有如下文件即安装成功。安装好j-link之后解压安装MM32**.exe。1.双击j-flash.exe。5.选择下载的HEX文件(7.烧录成功以后如下。
2024-11-05 18:03:18
422
原创 flash存储日志功能
一个数组为0xAA 时一个8bit的数据,我们分别处理 0x0A 和0xA0,对应的数据根据偏移原理由字符串static const char* hexChars = "0123456789ABCDEF";读操作原本的代码会读取整页的数据内容,这样一页存入的数条item会被同时读取出来,这里发现flash中的默认值时0xFF,我只要在法拉盛固定偏移的大小空间内内用用完空间,结束符标志均时0xFF,以此来判断一次读操作的结束。,把十六进制映射为自负床形式,用的检索的思想。3.flash读操作。
2024-10-31 15:07:14
740
原创 GPIO开漏输出和推挽输出
开漏输出,低电平cpu拉低,高电平由外部电源提供,CPU端口处于高阻态。应用场景:需要不同于CPU的电平的外部驱动时,用的推挽输出。初步理解:推挽输出,高低电平由cpu提供。
2024-10-31 14:43:19
307
原创 vs2010无法启动程序,系统找不到指定的文件
问题分析:从另一个主机上移植的项目,exe文件被指定,把生成的文件移植到指定的文件夹目录中以便解决该问题。首先遇到问题时不要胡乱尝试方法修改,不然都是浪费时间,分析报错产生的原因,才能对症下药》把该目录修改为你项目生成exe文件夹的目录即可。修改配置属性->调试->工作目录。
2023-05-25 16:02:22
6546
原创 C++算法记录册
1.递归剪枝法fun_back(int a[], int i, int n) { int max_len = 1; for (int j = i + 1; j < n; j++) if (a[j] > a[i]) if (max_len < fun_back(a, j, n) + 1) max_len = fun_back(a, j, n) + 1; return max_len; if (i == n - 1) return max_len;}
2022-05-15 00:44:35
439
带有ege图像库的编译器 DevCpp.exe
2021-11-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1