自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 of_alias_get_id 函数与设备树中aliases节点的关系

在设备树中有一个叫做aliases的节点:/ { ... chosen { stdout-path = "/serial@13800000"; bootargs = "root=/dev/ram0 rw rootfstype=ext4 console=ttySAC0,115200 init=/linuxrc"; }; aliases { serial0 = &uart0; serial1 = &uart1; i2c0 = &i2c0; i2c1 =

2020-12-09 17:35:11 1498

原创 剑指offer(C语言)60-68

#include <stdio.h>#include <stdlib.h>#include <string.h>#define bool unsigned int#define true 1#define false -1#define none 2int compare(const void* arg1,const void* arg2){...

2020-04-15 09:24:28 530

原创 剑指offer(C语言)51-60

51 数组中的逆序对题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如,在数组{7,5,6,4}中,一共存在5个逆序对,分别是(7,6)(7,5)(7,4)(6,4)和(5,4)思路:没想明白52 两个链表的第一个公共节点题目:输入两个链表,找出它们的第一个公共节点。...

2020-04-07 21:25:22 682

原创 剑指offer(C语言)41-50

PS:有些题是怎么降低一些本身很简单的题的时间复杂度,空间复杂度,对我而言没什么意义,也不是搞算法的。就选择性略过了41 数组流中的中位数题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。思路:最直观的就是排序,排序的时间复杂度是O(nlogN),寻找...

2020-04-04 15:33:58 352

原创 剑指offer(C语言)31-40

31 栈的压入、弹出序列题目:输入两个整数序列。第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列{1,2,3,4,5}是某栈的压栈序列,序列{4,5,3,2,1}是该压栈序列对应的一个弹出序列,但{4,3,5,1,2}就不可能是该压栈序列的弹出序列。思路:先将一下我自己的思路,入栈序列有多少个数就循环多少次,然后每次先入栈一个数,之后...

2020-03-29 08:41:34 422

原创 剑指offer(C语言)22-30

22 链表中倒数第k个节点题目:输入一个链表,输出该链表倒数第k个节点。为了符合多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,他们的值依次是1 2 3 4 5 6.这个链表的倒数第3个节点是只为4的节点。思路:由于是单向链表,只有指向下一个的指针,没有指向上一个的指针。第一想法是先遍历链表,查出一共有n个节点,再遍历链表,找到第n-k+...

2020-03-21 20:13:47 522 1

原创 剑指offer(C语言)11-21

未完待续11 旋转数组的最小数字题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1.思路:常规思路很简单,从头找比第一个小的就行。时间复杂度为O(n).如何能让时间复杂度更小一点。其实这种题很容易就会想到分治,也就是二分查找。...

2020-03-06 20:04:34 717

原创 剑指offer(C语言)3-10

面试题3-1 数组中重复的数字在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3}那么对应输出是1或者3思路:方法有很多,比如说先排序。但是完全可以在时间复杂度为O(N),空间复杂度是O(1)的条件下实现。如果没有重复的 ...

2020-03-06 10:50:48 1616 2

原创 操作系统(孟庆昌)课后答案——第七章 输入输出管理

1 什么是存储设备?什么是输入输出设备?UNIX系统中对设备怎样分类?存储设备也称外存,他们是计算机用来存储信息的主要设备。输入设备是计算机用来接受来自外部世界信息的设备输出设备是计算机将加工处理好的信息送向外部世界的设备。UNIX系统按照工作特性设备分为块设备和字符设备块设备:在存储设备上存储的信息,在物理上往往是按固定大小的块组织的,每块都有自己的地址。因此这类设备也叫块设备。字符...

2020-02-11 20:09:17 2011

原创 操作系统(孟庆昌)课后答案——第六章 文件系统

1 解释以下术语文件:文件是从存储设备中抽象出来的被命名的相关信息的集合体文件系统:操作系统中负责操纵和管理文件的一整套设施,它实现文件的共享和保护,方便用户“按名存取”。目录项:为了方便对文件进行控制和管理,在控制系统中给 每个文件唯一设置文件控制块,管理文件名、文件信息等信息项。文件控制块称为目录项。文件目录:为了加快对文件的检索,往往将文件控制块集中在一起进行管理。这种文件控制块的有...

2020-02-10 12:12:45 1675

原创 操作系统(孟庆昌)课后答案——第五章 存储管理

1 用户程序在计算机系统中主要分为哪些阶段?编辑、编译、连接、装入、运行2 解释下面概念物理地址:内存中的各物理存储单元的存储地址都是从统一的基地址开始编址的,这种地址称为物理地址或绝对地址逻辑地址:用户程序经编译之后的每个目标模块都是以0为基地址顺序编址,这种地址称为相对地址或逻辑地址逻辑地址空间 :由程序中逻辑地址组成的地址范围叫逻辑地址空间内存空间:由内存中一系列存储单元所限定的...

2020-02-09 16:06:07 2677 1

原创 操作系统(孟庆昌)课后答案——第四章 调度

1 处理机调度的主要目的是什么?处理机调度的主要目的就是为了分配CPU2 简述作业与进程之间的关系进程是一个程序对某个数据集的执行过程, 是分配资源的基本单位。进程调度主要功能是根据一定的算法将 cpu 分派给就绪队列中的一个进程。作业是用户需要计算机完成的某项任务, 是要求计算机所做工作的集合。一个作业可划分为若干个进程。作业调度的主要功能是审查系统是否能满足用户作业的资源要求以及按照一...

2020-02-08 13:46:13 3270

原创 操作系统(孟庆昌)课后答案——第三章 死锁

1 什么是死锁?举例概念:在一个进程集合中,每个进程都在等待由该集合中的另一个进程才能引发的事件而无限期的僵持下去的场面称为死锁。举例:桥有AB两段,甲车从A到B,已车从B到A,当甲车在A上已车在B上时,发生死锁。2 计算机系统中产生死锁的根本原因资源有限且分配不当3 发生死锁的4个必要条件1互斥条件临界资源在一段时间内只能由一个资源占有2占有且等待条件一个进程请求资源的得不到满...

2020-02-06 20:51:46 2785 2

原创 操作系统(孟庆昌)课后答案——第二章 进程和线程

1 在操作系统中为什么要引入进程概念?他与程序的关系与差别是什么?由于用程序这个静态概念已经不能如实反映程序并发执行过程中的特征,所以引入进程这一概念来描述程序动态执行过程的性质。1.1 进程与程序的联系一个程序可以由多个进程共用,一个进程可以执行多个程序,进程存在的意义就是执行程序,进程可以看成程序在并发过程中的执行过程1.2 进程与程序的差别1.进程是动态的概念,程序是静态的概念;程...

2020-02-06 12:25:30 3953 1

原创 操作系统(孟庆昌)课后答案——第一章 操作系统引论

PS:今天开始操作系统的学习,主要目的是明确概念,博客主要针对于概念性的课后习题。1 计算机系统主要由哪些部分组成计算机系统是由硬件和软件组成的:硬件的系统包括控制器、运算器、储存设备、输入设备、输出设备五个部分(也可以说处理器CPU、内存、IO设备和总线四部分);软件通常分为应用软件、支撑软件和系统软件,操作系统是裸机之上的第一层系统软件。注:CPU是处理器,由控制器和运算器组成2 什么...

2020-02-05 15:56:45 8638

原创 数据结构自学笔记(C语言)图

图是一种比线性表和树更为复杂的数据结构,在线性表中,数据元素之间只有线性关系,每个数据元素只有一个直接前驱和直接后继;在树形结构中,数据元素之间有明显的层次关系,并且每一层的数据元素可能与下一层中多个元素有关系,但只能和上一层的一个结点有关系;而在图中,结点之间的关系是任意的,图中任意两个元素都有可能相关。图:一个图G = (V,R)由顶点V(G)和边R(G)组成,其中V(G)是顶点的非空有限集...

2019-07-08 10:23:26 148

原创 数据结构自学笔记(C语言)十大排序

PS:由于今天时间来不及了 所以只是把程序先贴上来了,明天上午再好好画几个图把程序和概念细讲一下哈~这节讲排序,排序有十大经典算法,如图所示.(概念参考https://www.cnblogs.com/onepixel/p/7674659.html)十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类...

2019-07-06 20:30:55 335 1

原创 数据结构自学笔记(C语言)优先队列(堆)

队列我们之前学过,FIFO先进先出,这种做法在一些场合没问题,但在有些特殊的场合就不那么适用了。比如打印机工作,就是个队列,但是有时候会有一些额外的要求。比如医院排队,然后来了个领导,虽然他是后来的,但是我想把它放到第一个,这个用队列就实现不了,需要引入一个新的概念:优先队列。优先队列:优先队列是一种特殊的队列,是在队列的基础上引入优先级的概念。优先队列是允许至少下列两种操作的数据结构:Inse...

2019-07-04 21:58:50 533

原创 数据结构自学笔记(C语言)散列表

散列是一种用于以常数平均时间执行插入、删除和查找的技术。理想的散列表数据结构是一个包含有关键字的具有固定大小的数组,基本思想是在记录的存储地址和他的关键字之间建立一个确定的对应关系,这个关系是通过哈希函数来确定的。哈希函数:哈希函数通过某种规则,将要存储数据的关键字解析出一个int型的数据a,将数据存储到数组的第n个位置。规则可以自己设定,最简单的就是取字符的ASCII码,除以表长取余。通过哈...

2019-07-03 17:43:22 533

原创 数据结构自学笔记(C语言)AVL树

AVL树是带有平衡条件的二叉查找树,平衡条件是左子树的深度与右子树的深度差不超过1.为了满足这个平衡条件,在插入节点时需要对树进行不断的调整,因为每次插入节点都会修正,所以左右子树的差最大只会等于2,修正后就只等于1了。一共有四种修正形式,分别是LL,LR,RL,RR,这里理解起来还是挺绕的,我用图来描述一下。对于上面四个图来说,都是1节点不满足平衡条件了,这四种不满足条件的描述,分别对应R...

2019-07-02 15:40:40 140

原创 数据结构自学笔记(C语言)树与二叉树

先推荐一下书吧,之前用的一直是清华大学出版社的数据结构,感觉大学教材更多的也是这本。但是觉得这本书有些东西写的过于啰嗦,可能对新手更友好一点。而且他是C语言描述的,不是完全用C语言写,很多程序还要自己更正一下,觉得看起来不是太舒服。现在用的书是Mark Allen写的数据结构与算法分析,感觉蛮适合我的,但是最好是对指针里链表很熟悉了再来看这本书,不然会一脸懵。对于书的选择,还是看个人爱好吧,不管哪...

2019-07-01 20:36:49 253

原创 数据结构自学笔记(C语言)栈和队列

先明确概念,栈和队列是两种重要的线性结构,从数据结构角度看,栈和队列是特殊的线性表,是操作受限的线性表,即限定性数据结构。限定插入和删除只能在表的端点进行的线性表。栈的定义和特点定义:限定仅在表尾进行插入或删除操作的线性表,表尾——栈顶,表头——栈底,不含元素的空表称空栈特点:先进后出(FILO)或后进先出(LIFO)栈的运算:构造空栈、清空栈、销毁栈、判空栈、取栈顶元素、入栈、出栈既然...

2019-06-29 16:33:51 206

原创 数据结构自学笔记(C语言)链表

从上一节内容里可以看出,线性表的顺序存储结构的特点是逻辑关系上相邻的两个数据元素在物理位置上也相邻,因此可以通过物理地址的关系来随机存取表中任意元素,它的存储位置可以用一个简单的直观的公式来表示。然而从另一方面来看,这个特点也导致了这种存储结构的弱点,在插入或者删除操作时需要移动大量元素。这节我们学习线性表的链式存储结构。线性表的链式存储结构其实就是我们学C语言时最难的链表,他的特点是可以用一组...

2019-06-29 12:27:09 215

原创 数据结构自学笔记(C语言)基本概念及顺序线性表

程序员等于数据结构加算法,之前对数据结构有一定程度的了解,但是想成为一名程序员,这点了解还远远不够,所以决定从头系统的学习一遍数据结构。在选择语言上也纠结了一段时间,现在在高级语言太多了,Python、C++ 、Java,都考虑过,但在知乎上看见一些大牛说的很有道理,高级语言之所以高级,就是把很多底层的东西替你做好了,你只有用最原始最低级的C语言去学数据结构才能真正的体会到数据结构底层的东西,所以...

2019-06-27 21:21:51 347 1

原创 快速傅里叶变换学习FFT并通过Python进行实现

前言:最近在一些数据,需要在频域上进行分析,所以就学习了一下FFT,在这里把自己的学习内容梳理一下,有需求的小伙伴可以参考一下。一、DFT概述在学习快速傅里叶变换FFT之前,要先了解一下周期性离散时间傅里叶变换DFT.首先我们要搞清楚傅里叶变化的作用什么。DFT(FFT)的作用:可以将信号从时域变换到频域,而且时域和频域都是离散的,通俗的说,可以求出一个信号由哪些正弦波叠加而成,求出的结果就是...

2019-05-21 16:19:43 2052

原创 模拟滤波器的设计

参考书籍:模拟滤波器与电路设计手册 【美】Arthur B. Williams常用的滤波器频率响应是可以用两个含s的负数多项式比来决定,其实s=jw(w为角频率)极点:分母多项式的根零点:分子多项式的根频率响应的幅值为频率点到零点的矢量长度之积除以到极点的矢量长度之积;相位为频率点到零点的矢量相位和减去到极点的矢量相位和。当频率远小于某零点/极点的模时,该零点/极点对频率响应的影响可以忽...

2019-05-18 20:12:05 3920

原创 用Python串口实时显示数据并绘图

使用pyserial进行串口传输一、安装pyserial以及基本用法在cmd下输入命令pip install pyserial注:升级pip后会出现 "‘E:\Anaconda3\Scripts\pip-script.py’ is not present."错误使用 easy_install pip命令就能解决,换一条重新能执行安装的命令常用方法:ser = serial.Serial...

2019-05-06 21:27:45 38432 12

空空如也

空空如也

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

TA关注的人

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