- 博客(15)
- 资源 (8)
- 收藏
- 关注
原创 AD7606使用
AD7606使用使用STM32F407开发板ad7606.h文件#ifndef _AD7606#define _AD7606#include "sys.h"/****************@xg*关于ADC接线* AD7606接线 STM32F407VET6* OS0-2 直接接地 * RANGE 测量量程选择 B12* CA(CB
2021-04-23 12:22:50 732
原创 Qt串口丢数据解决方案
背景:采用Qt编写双串口子线程接收高速大量数据(921600bps,底层数据发送率是1000Hz,一帧数据16字节),当底层数据缓冲区长度不定的时候,Qt上位机接受数据容易出错。解决方案:1.接受采用队列作为缓冲区,剔除错误数据;2.固定底层数据缓冲区,上位机和底层完成缓冲区一致对接。...
2020-10-14 18:10:09 2713 4
原创 手撕代码系列7 -- 堆排序
原理构建最大堆,每次把极值移到未排序数组的最后一位,直至全部有序手撕代码void down(vector<int> &vec,int l,int j) //重建大顶堆{ //排序 [l,r] int i = l; int temp = vec[i]; for(i = 2*i+1;i<=r;i = 2*i+1) { if(i+1<=r && vec[i]<vec[i+1])
2020-09-02 17:03:59 177
原创 手撕代码系列6 -- 快速排序
原理找到一个值,使得数组左边的值全部小于它,数组右边的值全部大于它;手撕代码void quickSort(vector<int> &vec,int l,int r){ //排序边界[l,r]if(l<r){ int i = l,j = r; int temp = vec[i]; while(i<j) { whie(i<j && j>temp) {
2020-09-02 16:42:58 179
原创 手撕代码系列5--希尔排序
原理希尔排序,是对插入排序的一种改进,先分组有序,再全体有序;手撕代码void shellSort(vector<int> &vec){ int len = vec.size(); int j = 0; int gap = len;//分组 do{ gap = gap/2;//这个策略可以修改,改善时间复杂度 for(int i = 0;i<gap;i++) //每一个分组排
2020-09-02 16:30:19 123
原创 手撕代码系列4 --直接插入排序
原理将数组分为两个部分,有序数组和无序数组,每一轮将无序数组里面的元素插入有序数组中手撕代码系列void insertSort(vector<int> &vec){ int len = vec.size(),ele; for(int i = 1;i<len;++i)//从下标1开始,插入 { ele = vec[i]; for(int j = i-1;j>=0;j--) {
2020-09-02 10:57:30 101
原创 手撕代码系列3 -- 快速排序
原理1.从数组中选择一个基准值2.比基准值小的放在左边,比基准值打的放在右边,最后退出的时候,基准值则位于数组中间3.对基准值左边进行排序,对基准值右边进行排序.手撕代码void quickSort(vector<int> &vec,int start,int end){ if(start<end) { int i = start, j =end; int ele = vec[start]; w
2020-09-02 10:39:45 107
原创 手撕代码系列2--冒泡排序
原理每一次遍历,将未排序数组的最大值放在未排序数组的最后手撕代码void BubbleSort(vector<int> &vec){ int len = vec.size(); bool flag = false; for(int i = 0;i<len-1;i++)//对n-1个元素排序 { for(int j = 1;j<len-i;j++) { flag = fals
2020-09-02 10:20:27 173
原创 手撕代码系列1--选择排序
原理从未排序区域选择一个最小值(最大值)放到开始位置(已排序的最后位置或者未排序的开始位置)。手撕代码void BubbleSort(vector<int> &vec){ /*数组长度*/ int len = vec.size(); for(int i = 0;i<len-1;++i) { int index = i;//当前未排序开始位置 for(int j = i+1;j<len;j++){
2020-09-02 10:05:16 86
原创 leetcode LC146 最长不重复子串
题目:从一个字符串中找到一个连续子串,该子串中任何两个字符不能相同,求子串的最大长度并输出一条最长不重复子串。思路:利用map表hashtable[256]来保存出现过的字符,然后从头开始遍历字符串,1、如果当前字符ch已经出现过(hashtable[ch]==1),则表示一个局部最长不重复子串已经出现:此时更新子串长度,同时更新最长子串的起始位置start。同时将start到重复字符ch之间的map表重置为0(表示没有出现过)然后从ch的下个字符作为新的子串的开始;2、如果当前
2020-08-31 19:47:40 114
转载 leetcode每日一道(6):求给定的二叉树的后序遍历
1. 题目题目描述求给定的二叉树的后序遍历。例如:给定的二叉树为{1,#,2,3},1↵ ↵ 2↵ /↵ 3↵返回[3,2,1].备注;用递归来解这道题太没有新意了,可以给出迭代的解法么?2. 思路2.1 递归我们先考虑一下递归的思路,从三种遍历来看(前序、中序、后序),都是可以通过递归来实现的,只需要不断调用自身函数,但是问题就是带来的空间复杂度太高。因此最好的方案是迭代。2.2 迭代如果是前序遍历,我们的顺序是根节点,左节点,右节点。如果我们用一个栈来实现,可以这样考
2020-08-30 19:54:11 117
原创 MYSQL(二) 数据库类型详解
MySQL的数据类型有大概可以分为5种,分别是整数类型、浮点数类型和定点数类型、日期和时间类型、字符串类型、二进制类型。 整数类型 类型名称 存储需求 有符号 无符号 TINYINT 1BYTE -128~127 0~255 SMALLINT 2BYTES -32768~32767 0~65535 MEDIUMINT 3BYTES -8388608~8388607 0~16777215 INT(INTEGE..
2020-08-30 17:59:17 133
原创 MYSQL(一) 数据库表基本操作
数据库安装 安装教程:https://jingyan.baidu.com/article/642c9d34aa809a644a46f717.html 数据库基本操作 1.开启数据库的命令net start mysql2.进入mysql的两种方式明文进入: mysql -uroot -proot 格式:mysql -u账号 -p密码密文进入:mysql -uroot -p 按enter会提示你输入密码(Enter pssword:),此时你写的密码就...
2020-08-30 11:30:17 639
原创 网路 TCP
传输控制协议TCP TCP最主要的特点 TCP是面向连接的运输层协议。这就是说,应用程序在使用TCP协议之前,必须先建立TCP连接。在传送数据完毕后,必须释放已经建立的TCP连接。 每一条TCP连接只能有两个端点(endpoint),每一条TCP连接只能是点对点的(一对一)。 TCP提供可靠交付的服务。通过TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达。 TCP提供全双工通信。TCP允许通信双方的应用进程在任何时候都能发送数据。TCP连接的两端都设有发送缓存和接收缓存,用来临时存
2020-08-29 20:48:26 226
原创 网络 UDP简介
用户数据包协议UDP UDP特点 UDP是无连接的,即发送数据前不需要建立连接。 UDP使用尽最大努力交付,即不保证可靠交付。 UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。 UDP没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低。 UDP支持一对一、一对多、多对一和多对多的交互通信。 UDP的首部开销小,只有8个字节,比TCP的20个字节的首部要短。 UDP的
2020-08-29 20:10:24 698
16channel_uppper_software.rar
2021-06-15
网卡驱动问题(主要是无线网卡),设备管理器里面代码错误号是56
2020-05-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人