自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 字符设备驱动程序

简单做个模板框架。

2024-07-05 00:47:17 357

原创 .so: file not recognized: file format not recognized

自Linux 4.8起,传统的GPIO sysfs接口被弃用。libgpiod操作gpio的方式感觉更加方便。但是单板上好像没装这个工具,又到了熟悉的交叉编译环节(痛苦)。

2024-07-01 00:16:11 618

原创 linux问题总结2

开发板直接与windows通过网线连接,把windows的连接外网的网卡设置为共享,让开发板连接的windows网卡共享外网连接。

2024-06-28 01:22:46 352 1

原创 arm-linux-gnueabihf-gcc:Command not found 解决办法

使用虚拟机交叉编译程序,当使用了sudo去编译, 出现arm-linux-gnueabihf-gcc:Command not found的问题。明明已经安装并配置好环境了,发现还是提示找不到编译器。

2024-06-28 01:19:40 1716

原创 嵌入式-Cmake模版

讲道理,嵌入式一般用makefile就够了。先记下这个模版以备不时之需。

2024-06-28 00:50:32 308

原创 嵌入式开发——Makefile模板

【代码】嵌入式开发——Makefile模板。

2024-06-28 00:35:12 381

原创 C++ 刷题 必备STL函数

【代码】C++ 刷题 必备STL函数。

2024-06-28 00:25:59 511

原创 ACM模式刷题常用

刷题时整理的常用函数

2024-06-28 00:23:57 387

原创 韦东山imx6ull QT移植

【代码】韦东山imx6ull QT移植。

2024-04-11 16:16:35 632

原创 linux的问题总结1

段错误(Segmentation Fault)是一种常见的程序错误,通常在访问无效的内存地址时发生。如内存访问错误(访问野指针,操控空指针,数组越界),动态内存分配问题(内存泄漏,重复释放,访问已释放内存),栈溢出等。首先查看 ulimit -a 查看core file size, 如果为0则需要通过命令设置来设置大小(临时),可通过ulimit -c size 设置大小。运行程序时出现 :段错误(核心已转储)Segmentation Fault,却没有生成core文件.因为非法关机等原因,磁盘损坏。

2024-03-31 11:37:39 289 1

原创 集成学习基础

集成学习通过构建并结合多个学习器来完成学习任务,有时也称为多分类器系统,可以获得比单一学习器显著优越的泛化性能

2023-02-10 20:07:55 365

原创 GAN(1)-生成对抗网络的开山之作

GAN的开山之作

2022-09-18 17:49:02 585

原创 归并排序

归并排序的思想:将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。时间复杂度:O(nlogn)空间复杂度:O(n)稳定性:稳定#include<iostream>using namespace std;//将有序的arr[s..m]和arr[m+1..n]归并成有序的T

2020-05-22 17:29:12 162

原创 堆排序

学到了堆排序,并将重要代码都注释了,有需要的可以白嫖,欢迎纠正。堆排序的基本思想:将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次大值。如此反复执行,便能得到一个有序序列了步骤:a.将无需序列构建成一个堆,根据升序降序需求选择大顶堆或小顶堆;b.将堆顶元素与末尾元素交换,将最大元素"沉"到数组末端;c.重新调整结构,使其满足堆定义,然后继续交换堆顶元素与当前末尾元素,反

2020-05-20 20:23:03 185

原创 简单排序——插入、冒泡、选择

插入排序:基本原理 :直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列,算法适用于少量数据的排序,时间复杂度为O(n^2)。步骤:a、 从第一个元素开始,该元素可以认为已经被排序b、 取出下一个元素 在已经排序的元素序列中从后向前扫描c、 如果该元素(已排序)大于新元素,将该元素移到下一位置d、 重复c步骤直到找到已排序的元素小于或者等于新元素的位置e 、将新元素插入到该位置

2020-05-19 13:24:54 235

原创 fibonacci查找

#include<iostream>using namespace std;#define MAXSIZE 20//f斐波那契数列 {0,1,1,2,3,5,8,13,21,34}//编写fibonacci数列,返回数组int* fibonacci(){ int * f = new int[MAXSIZE]; f[0] = 1; f[1] = 1; for (int i = 2; i < MAXSIZE; i++) f[i] = f[i - 1] + f[i -

2020-05-17 16:08:07 188

原创 HashTable代码实现

#include<iostream>using namespace std;#define NULLKEY -32768#define HASHSIZE 12; //定义散列表长为数组长度class HashTable{public: int *elem; //动态数组 int count; //数据个数 };int m = 0; //散列表表长,全局变量bool InitHashTable(HashTable &H) //散列表初始化{ int i =

2020-05-17 14:20:52 249

原创 拓扑排序

拓扑排序的实现步骤在有向图中选一个没有前驱的顶点并且输出从图中删除该顶点和所有以它为尾的弧(白话就是:删除所有和它有关的边)重复上述两步,直至所有顶点输出,或者当前图中不存在无前驱的顶点为止,后者代表我们的有向图是有环的,因此,也可以通过拓扑排序来判断一个图是否有环。#include<iostream>#include<stack>#include<vector>#include<algorithm>using namespace std;#

2020-05-10 20:31:32 204

原创 最短路径 Floyd算法

核心算法: 复杂度O(n3)#include<iostream>using namespace std;#define max 100#define INF 65535class mgraph {public: int vex[max]; //顶点表 int arc[max][max]; //边的权值,邻接矩阵 int numvexes; //顶点数 int numedges; //边数};void creat(mgraph &G) //构建图{

2020-05-10 16:02:18 223

原创 最短路径djikstra算法

算法好难,费了九牛二虎之力,一点点照着敲了下来,方便理解。#include<iostream>using namespace std;#include<queue>typedef int vertextype; //顶点类型typedef int edgetype; //边上的权值类型#define max 100 //最大顶点数#define INF 65535 //65535代表正无穷class mgraph{public: vertextype

2020-05-10 00:13:47 373 1

转载 并查集

1、什么是并查集并查集(Union Find)是一种用于管理分组的数据结构。它具备两个操作:(1)查询元素a和元素b是否为同一组 (2) 将元素a和b合并为同一组。注意:并查集不能将在同一组的元素拆分为两组。2、并查集的结构并查集可以使用树来实现。使用树形结构来表示以后,每一组都对应一棵树,然而我们就可以将这个问题转化为树的问题了,我们看两个元素是否为一组我们只要看这两个元素的根是否一致。显然,使用树形结构将问题简单化了。合并时是我们只需要将一组的根与另一组的根相连即可。3、并查集的实现

2020-05-09 13:52:44 132

原创 kruskal算法 并查集思想

对于稀疏图来说,用Kruskal写最小生成树效率更好,加上并查集,可对其进行优化。Kruskal算法的步骤:1.对所有边进行从小到大的排序。2.每次选一条边(最小的边),如果形成环,就不加入(u,v)中,否则加入。那么加入的(u,v)一定是最佳的。并查集如何实现:我们可以将每个集合视作一棵树,用这棵树的根的编号代表这个集合,最开始所有点都属于不同的集合,即每个点为其所在的树的根。在合并集合时,我们可以将其中一个集合的根的父亲设为另一个集合的根的父亲,找父亲操作我们可以通过从当前点往其父亲跳来实现

2020-05-08 23:09:35 373

原创 图——邻接矩阵的DFS,BFS

邻接矩阵由于是二维数组,DFS,BFS时间复杂度O(n2)。 深度优先适合目标比较明确,以找到目标为主要目的的情况。 广度优先搜索更适合在不断扩大遍历范围时找到相对最优解情况。一、BFS的介绍BFS(广度优先搜索,也可称宽度优先搜索)是连通图的一种遍历策略。使用队列保存未被检测的结点。结点按照宽度优先的次序被访问和进出队列。广度优先搜索(BFS)类似于二叉树的层序遍历算法,是一种分层...

2020-05-06 22:15:00 1607

原创 图——邻接表的DFS,BFS

邻接表做存储结构时,找邻接点所需的时间取决于顶点和边的数量,DFS,BFS时间复杂度为O(n+e)。1、邻接表2、邻接表 DFS:从起点出发,走过的点要做标记,发现有没走过的点,就随意挑一个往前走,走不了就回退,此种路径搜索策略就称为“深度优先搜索”,简称“深搜”。其实称为“远度优先搜索”更容易理解些。因为这种策略能往前走一步就往前走一 步,总是试图走得更远。所谓远近(或深度),就是以...

2020-05-06 20:28:50 5160

原创 二叉排序树(BST)的构建与删除

二叉排序树(BST)的构建,插入,查找与删除二叉排序树的删除结点分为三种情况(1)叶子结点这种情况最简单,由于删除叶子结点不会破坏整棵树的结构,只需要修改其双亲结点的指针即可(2)要删除的结点只求左子树或者右子树相对而言也比较简单,只需要删除结点后,将它的左子树或右子树整个移动到删除节点的位置即可。#include<iostream>using namespace std...

2020-04-29 14:05:54 318

原创 中序线索二叉树

c++ 中序线索二叉树二叉树原理不难,可是一到编程,问题好多。代码一小时,bug一整天。#include<iostream>using namespace std;typedef char elemtype;class BiThrNode {public: elemtype data; struct BiThrNode *lchild, *rchild; int L...

2020-04-27 12:45:32 282

原创 二叉树的创建与遍历(递归和非递归)

最近学到了二叉树,把二叉树的实现算法记录下来#include<iostream>using namespace std;#define maxsize 20typedef char elemtype;int num = 0;class binode {public: elemtype data; binode * right; binode * left;};t...

2020-04-24 18:08:46 266

转载 二叉树的基础知识

一、 二叉树简介1、二叉树的定义二叉树是每个结点最多有两个子树的树结构。它有五种基本形态:二叉树可以是空集;根可以有空的左子树或右子树;或者左、右子树皆为空。2、二叉树的相关概念深度,节点层数,高度,路径,叶节点,分支节点,根节点,父节点,左节点,右节点,兄弟节点,祖先节点,子孙节点,左子树,右子树。3、二叉树的性质性质1:二叉树第i层上的结点数目最多为2i-1(i>=1)性质...

2020-04-24 18:06:29 670

原创 多种方式学习kmp算法

苦涩难懂kmp算法文章只为记笔记,借鉴了其他博客的文章,勿怪。1、漫画理解KMP算法::https://blog.csdn.net/qq_39213969/article/details/1034720122、B站天勤视频:https://www.bilibili.com/video/BV17i4y1t76L?p=343、博客:https://blog.csdn.net/qq_379694...

2020-04-22 22:55:24 145

原创 队列的链式存储 c++

队列的链式存储队列的链式存储结构,其实就是线性表的单链表,只不过它只能尾进头出,我们把它简称为链队列。队头指针指向链队列的头结点,队尾指针指向终端节点。#include<iostream>using namespace std;template<class T>class node{public: T data; node<T> * nex...

2020-04-19 19:34:17 334

原创 循环队列 c++ 模板实现

循环队列 c++ 模板实现#include<iostream>using namespace std;template<class T>class sqqueue {private: T *data; int front;// 头指针 int rear;// 尾指针 int maxsize;public: sqqueue(int n); /...

2020-04-19 17:42:27 254

原创 单链表的定义和基本操作 c++

单链表 c++(数据结构 ) 链表是一种动态数据结构,它的特点是用一组任意的存储单元(可以是连续的,也可以是不连续的)存放数据元素。 链表中每一个元素成为“结点”,每一个结点都是由数据域和指针域组成的,每个结点中的指针域指向下一个结点。Head是“头指针”,表示链表的开始,用来指向第一个结点,而最后一个指针的指针域为NULL(空地址),表示链表的结束。 链表很基础,很重要!!!头文件:函...

2020-04-17 22:50:06 636

原创 栈的链式存储(数据结构) c++

c++数据结构 ——栈的链式存储栈是用的很多的一个数据结构,这里写用链表实现的方法。栈是先进后出,能解决很多问题,例如:括号匹配,后缀表达式等。这里我定义了一个模板类,令我的栈的链式存储可以处理各种数据类型。#include<iostream>using namespace std;template<class T>class node {public...

2020-04-17 22:24:24 345

原创 共享栈 (数据结构)

两个栈共享空间 利用一个数组来存储两个栈;让一个栈底为数组的首端;一个栈底为数组的末端.每个栈都向数组中间延伸,以此来充分利用数组的空间。 只适用于两个相同的数据类型#include<iostream>using namespace std;#define maxsize 10template<class T>class sqdoublestack {p...

2020-04-16 18:38:23 262

原创 栈的顺序存储 c++

栈的顺序存储c++#include<iostream>using namespace std;template<class T>class sqlist {public: sqlist(int n); //创建 ~sqlist(); void travel_sqlist();//遍历 int len_sqlist(); bool isempty();...

2020-04-16 12:38:25 158

原创 斐波那契数列 3种算法实现

斐波那契数列今天学了3种斐波那契数列的解法,感觉算法太神奇了。题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。分析:如果只有1级台阶,那显然只有一种跳法如果有2级台阶,那么就有2种跳法,一种是分2次跳。每次跳1级,另一种就是一次跳2级如果台阶级数大于2,设为n的话,这时我们把n级台阶时的跳法看成n的函数,...

2020-04-14 22:05:31 322

原创 c++顺序表

c++顺序表的基本操作一名大二的通信狗,第一次发博客,好激动,好激动!这个顺序表,用了半天才敲出来的。初学数据结构的c++小伙伴,可以参考参考。大佬的话,转下:刚学完c++,正在学数据结构。能看懂别人的代码,自己却编不出来。很多知识点明明已经理解了,可一到敲代码,就感觉一点思路都没有。很喜欢编程,但是感觉自己学的好慢啊,编程没有思路,太打击自信心了,是不是没那天分???我觉得应该是代码写...

2020-04-12 18:26:42 287 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除