Binary search tree
Binary Search TreeBST的查找,插入和删除的时间复杂度平均为$log_2^n$。
Definition对于二叉树的每一个节点 ,其对应左子树中的所有节点中的值必须小于等于它自己,并且右子树中所有节点中的值必须大于它自己。不需要考虑leaf nodes
如下图所示,对于根节点来说左子树上有一个节点的值比根大,因此不满足二叉搜索树的条件。
OperationSearch(x)首先提及二分查找的思路:二分查找通过比较目标值与数组中间元素的大小,决定继续在左半部分或右半部分进行查找。具体步骤如下:
找到数组的中间元素。
如果目标值等于中间元素,则查找成功。
如果目标值小于中间元素,则在左半部分继续查找。
如果目标值大于中间元素,则在右半部分继续查找。
重复上述过程,直到找到目标值或搜索范围为空。
初始搜索范围是 n。
第一次查找后,搜索范围缩小为 n/2。
第二次查找后,搜索范围缩小为 n/4。
依此类推,第 k 次查找后,搜索范围缩小为 n/2k。
当搜索范围缩小到 1 时,查找结束,即:
\frac{n}{2^k} = 1解这个方程,得到:
k = log_2^ ...
Binary Tree
二叉树的概念二叉树
二叉树的唯一条件是每个节点最多只能有两个子节点(可以只有一个)
没有子节点的节点被称为leaf node
二叉树的唯一条件是一个节点不能有超过两个的子节点
一个节点的深度定义为从根节点到该节点的路径长度
第$i$层的最大节点数为 $2^i$
二叉树的高度是从根到叶子的最长路径(边的数量),即只有一个节点的树高度为0,空树的高度为-1树的类型Strict/Proper Binary Tree 严格二叉树each node can have either 0 or 2 children 每个节点只能有2个或0个子节点Complete Binary Tree 完全二叉树all level except possibly the last are completely filled and all nodes are left as possible(最后一层节点必须向左填充,其他层节点均填满)Perfect Binary Tree 完美二叉树all levels will be completely filled所有节点的数量为$2^{h+1}-1 = 2^{(numbe ...
clion&cubemax setting
关于如何配置Clion和cubemax烧录stm32代码Clion需要提前配置好Minw编译器
软件环境:
Windows 10
STM32CubeMX
Clion-2024
MinGW
OpenOCD
arm-none-eabi-gcc
硬件环境:
STM32F103Cx
DapLink下载器
arm-none-eabi-gcc Windows到这里下载:https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads ,选择ZIP压缩包形式的
下载好openOCD和arm-none-eabi-gcc后配置工具链如下,注意debug不要修改,否则无法断点调试
记得新建环境以防影响日常c++开发
同时设置openocd和cubemax
在完成设置后新建项目生成网上都有相关教程
这里我提供在cubemax生成项目后回到Clion中不自动识别出现debug的问题的解决方法
在工程项目的根目录添加以下三个文件
st_link.cfg
1234567891011121314151617# choose st- ...
通讯协议学习(UART)
UART通讯协议(Universal Asynchronous Receiver/Transmitter)通用异步接受/发送器—UART,是一种串行,异步,全双工通信协议。
串行(Serial)定义: 数据以一位接一位的形式,在单条通道中按顺序传输。
特点:
数据从起点到终点逐位传输,而不是同时传输多位。只需要一条通信线或数据通道(外加控制线)。
异步(Asynchronous)定义: 数据传输中,发送方和接收方的时钟无需同步。
异步通信以一个字符为传输单位。通信中两个字符之间的时间间隔不固定,但同一字符中两个相邻位之间的时间间隔是固定的。一般来说,两个UART设备之间的通信不需要时钟线。此时,需要在两个UART设备上指定相同的传输速率,以及空闲位、起始位、奇偶校验位和结束位,即遵循相同的协议。
特点:
起始位和停止位:每组数据通常用起始位和停止位标志数据包的开始与结束。
无需共享时钟:双方时钟独立,但需要相同的波特率。
全双工(Full-Duplex)定义: 数据可以同时双向传输,即发送和接收在同一时间内进行。需要两根独立的物理通道,一条用于发送数据,另一条用于接收数据。
数据传输 ...
I'm BACK!
回来了时隔接近一年,因为最近在准备实习,突然想到我也有自己的技术博客,于是又重新学习了一番,准备持续的用博客当作学习知识或者八股一类后的输出了
希望来年能找到合适的实习,秋招能找到合适的工作吧,在如此严峻的形式下,个人能做的也只有带着迷茫的向前努力啦。
加油吧!





