自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Windows下Qt for Android开发之环境搭建

文章目录前言一、准备工作二、安装Qt及插件1.安装Qt2.安装JDK3.安装SDK4.安装NDK5.配置Qt中的设置一、准备工作需要事先准备好Qt 5.13.1(或Qt 5.13.2)的安装文件。准备好搭建环境的JDK、NDK、SDK等文件。注意事项:个人建议使用我提供的文件,Qt对JDK、SDK的

2022-03-07 16:45:01 5220 3

原创 Qt项目的打包发布

Qt项目打包发布

2022-03-01 12:47:12 1202

原创 选择排序详解及递归实现

文章目录一、概念及原理二、适用说明1.时间复杂度2.空间复杂度3.算法特点4.动画演示三、双循环实现代码演示1.未优化的代码实现2.优化后的代码实现四、递归实现代码演示1.未优化的代码实现2.优化后的代码实现一、概念及原理选择排序:每一趟从待排序的记录中选出关键字最小的记录,按顺序放在已排序的记录序列的最后,知道全部排完为止。二、适用说明1.时间复杂度简单的选择排序的时间复杂度是O(n^2)。2.空间复杂度只有在两个记录交换时需要一个辅助空间,所以空间复杂度为O(1)。3.算法特点就.

2021-11-21 08:00:00 2414

原创 快速排序详解

文章目录一、概念及原理二、使用说明1.时间复杂读2.空间复杂度3.算法特点4.动画演示三、代码演示一、概念及原理快速排序:是由冒泡排序改进二得的。在冒泡排序过程中,只对相邻的两个元素进行比较,因此每次交换两个相邻的元素时只能消除一个逆序。如果能通过两个(不相邻)记录的一次交换,消除多个逆序,则会大大加快排序的速度。快速排序方法中的一次交换可能消除多个逆序。二、使用说明1.时间复杂读在平均情况下,快速排序的时间复杂度为O(log2n)。2.空间复杂度快速排序是递归的,执行时需要一个栈来存放相应

2021-11-20 08:00:00 358

原创 冒泡排序详解及递归实现

文章目录一、概念及原理二、使用说明1.时间复杂度2.空间复杂度3.算法特点4.动画展示三、双循环实现代码演示四、递归实现代码演示一、概念及原理冒泡排序:通过两两比较相邻元素,如果发生逆序,则进行交换,从而使大的元素像气泡一样逐渐往上“”“漂浮”。二、使用说明1.时间复杂度最好情况下:只需要进行一次排序,在排序过程中进行 n-1 次元素间的比较,且不移动记录。最坏情况下:需要进行 n-1 次排序,总的元素比较次数和记录移动次数分别为n^2/2 ,3*n^2/2。在平均情况下,冒泡排序元素的比较

2021-11-19 08:00:00 6183

原创 希尔排序详解

文章目录一、概念及说明二、使用说明1.时间复杂度2.空间复杂度3.算法特点4.动画演示三、代码演示一、概念及说明希尔排序-----插入排序的一种,属于优化后的插入排序原理:把数组中的数据进行分组,在组内进行排序,没有排列好继续分组(注意改分组需要调整每个组元素的个数),每次排序都是在组内进行排序例如数组中有15个元素为例,第一次分组为 15/2 =7-1=6 第二次分组为7/2=3-1=2 算出来的数为元素间隔数。相比于插入排序的优点是:1.减少查找次数 2.减少元素移动的次数二、.

2021-11-17 13:49:50 850

原创 插入排序详解及递归实现

文章目录一、概念及说明二、适用说明1.时间复杂度2.空间复杂度3.算法特点4.算法动画展示三、双循环实现代码演示四、递归实现代码演示一、概念及说明原理:通过构建有序数列,把未排列数据,通过扫描,插入到有序数列的合适位置插入排序的基本思想:每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有的待排序记录全部插入为止。二、适用说明1.时间复杂度当待排序数组是有序时,是最优的情况,只需当前数跟前一个数比较一下就可以了,这时一共需要比较 N-1 次,时间复杂度为.

2021-11-17 13:02:06 4607 4

原创 Makefile入门详解

文章目录一、Makefile简介二、makefile 原理1、当有依赖文件不存在2、当所有依赖文件存在三、makefile基本规则1.makefile规则三要素2.基本规则3、makfile中的变量3.1普通变量3.2自动变量3.3例程4、makefile中的伪目标四、makefile其他常用的规则五、makefile中的函数5.1函数 subst5.2函数 patsubst5.3函数 dir5.4函数 notdir5.5函数 foreach5.6函数 wildcard六、综合例程提示:以下是本篇文章正.

2021-11-03 21:41:40 6311

原创 Linux进程间通信 - - - 信号量

文章目录前言一、信号量概述二、信号量相关API详解1.创建或者获取一个信号量2.改变信号量的值3.控制信号量三、代码演示前言本文为笔者学习笔记,若有不妥之处,欢迎斧正。一、信号量概述信号量(semaphore)与之前介绍过的 IPC 结构不同,它是一个计数器。信号量用于实现进程间的互斥与同步,而不是用于存储进程间通信数据。它是一个特殊变量,只允许对它进行等待和发送信号这两种操作P(信号量变量):等待。如果sv大于0,减小sv。如果sv为0,挂起这个进程的执行。V(信号量变量sv):发送信号

2021-05-17 18:23:55 338

原创 Linux进程间通信 - - - 共享内存

文章目录前言一、共享内存概述二、共享内存相关API详解1.获取键值2.创建或者获取一段共享内存3.连接共享内存4.断开连接共享内存5.控制共享内存三、代码演示前言本文为笔者学习笔记,若有不妥之处,欢迎斧正。一、共享内存概述简单来说共享内存的概念:是指两个或多个进程共享已给定的存储区。共享内存的特点:共享内存是最快的一种IPC,进程是直接对内存进行存取。支持多个进程同时操作,所以需要同步操作。(也就是配合信号量使用)信号量+共享内存通常结合起来一起使用,信号量用来同步对共享内存的访问。

2021-05-17 15:33:41 500 1

原创 Linux进程间通信 - - - 消息队列

文章目录前言一、消息队列概述二、消息队列相关API详解1.获取键值2.打开或创建消息队列3.添加消息4.读取消息5.控制消息队列6.消息队列的消息结构体三、代码演示总结前言本文为笔者学习笔记,若有不妥之处,欢迎斧正。一、消息队列概述消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。消息队列的特点:消息队列是面向记录的,其中消息具有特定的格式以及特定的优先

2021-05-16 16:17:35 1080

原创 Linux进程间通信 - - -管道

文章目录前言一、进程间通信的概述二、管道概述1.无名管道(pipe)2.命名管道(FIFO)三、无名管道和命名管道的异同前言本文为笔者学习笔记,若有不妥之处,欢迎斧正。一、进程间通信的概述进程间通信也称为IPC技术。作用是:使进程之间相互通信的技术。进程间通信的目的:数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。通知事件:一个进程需要向另一个或一组进程发送消息,

2021-05-16 14:06:29 214

原创 UNIX环境高级编程 - - - 进程exec族函数

文章目录前言一、exec族函数简介二、exec族函数详解1.函数原型2.详解上述API三、Linux system函数四、Linux popen函数前言本文为笔者学习笔记,若有不妥之处,欢迎斧正。一、exec族函数简介exec族函数的作用:用在fork函数创建新的进程后,经常会在新进程中调用exec函数去执行另外的一个程序。注意:当进程调用exec函数时,该进程被完全替换为新程序。在调用exec函数时并不创建新的进程,所以前后的进程pid没有改变。exec族函数有:execl、execv ex

2021-05-15 15:59:37 320

原创 UNIX环境高级编程 - - -进程1

文章目录前言一、进程相关概念二、1、总结前言本文为笔者学习笔记,若有不妥之处,欢迎斧正。一、进程相关概念什么是程序?什么是进程?两者有什么区别呢?程序:是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具。进程:计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。区别:程序会一直存储在磁盘中,进程是暂时的,是程序在内存中执行的过程,可以创建和撤销。程序是静态的,而进程是动态的进程具有并发性,而程序没有

2021-05-14 22:18:47 138

原创 shell脚本入门2

文章目录前言一、shell脚本条件判断1、if判断2、case语句二、shell脚本函数三、shell循环1、while循环2、unitl循环3、for循环前言本文为笔者学习笔记,若有不妥指出,欢迎指出。一、shell脚本条件判断shell脚本支持条件判断,虽然可以通过&&和||来实现简单的条件判断,但是稍微复杂一点的场景就不适合了。1、if判断语法原型及用法有以下三种:第一种:if 条件判断 ; then //判断成立要做的事情fi代码演示:#!/bin/b

2021-05-12 16:16:59 103

原创 shell脚本入门1

文章目录前言一、什么是shell脚本?二、shell脚本语法1、第一个shell脚本2、交互式shell脚本3、shell脚本实现数值的计算4、test命令5、中括号[]判断符6、默认变量总结前言本文为笔者学习笔记,若有不妥之处,欢迎指出。一、什么是shell脚本?shell脚本类似windows的批处理文件,shell脚本就是将连续执行的命令写成一个文件。它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定

2021-05-11 20:47:16 98 1

原创 Linux动态库和静态库详解

文章目录前言一、二、1.前言提示:以下是本篇文章正文内容,下面案例可供参考一、二、1.

2021-05-10 19:38:39 148

原创 树莓派内核编译

文章目录前言一、准备工作二、如何配置树莓派的Linux内核1、内核配置2、内核编译3、Linux内核镜像拷贝至树莓派三、验证前言本文为笔者学习过程中的笔记,开发平台为树莓派3B。若有错误之处,欢迎指出。一、准备工作提前把需要使用的文件,传输到虚拟机中。linux-rpi-4.14.y(树莓派内核文件),tools-master(交叉编译工具)注意:交叉编译工具需要安装,具体查看博客:交叉编译解压树莓派内核文件。安装可能会需要使用的第三方库sudo apt-get install bc

2021-05-09 18:18:30 914

原创 树莓派开发基础配置

文章目录前言一、树莓派刷机二、树莓派的登录1、串口登录2、ssh方式登录(网络)3、图形方式登录树莓派(建立在树莓派已经联网的前提下)4、HDMI视频线(不推荐)三、更新树莓派中的软件前言本文是笔者学习过程中的笔记,若有错误之处,欢迎指正。一、树莓派刷机刷机需要准备的东西:USB读卡器SD卡固件包刷固件包的软件操作步骤:将SD卡插入USB读卡器,并将读卡器与电脑连接。使用 Win32DiskImager 软件将固件包写入到内存卡中。写入完成后,将内存卡取出,插入树莓派中。

2021-05-08 19:12:27 171

原创 树莓派串口通信

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、树莓派串口通信1、二、Wemos D1 串口通信1.引入库2.读入数据前言本文为笔者学习笔记,若有错误之处,欢迎指出。提示:以下是本篇文章正文内容,下面案例可供参考提示:此处不讲串口通信原理,原理可见,博客:串口通信原理一、树莓派串口通信1、二、Wemos D1 串口通信1.引入库2.读入数据...

2021-05-08 16:17:21 712

原创 Wemos D1串口通信

文章目录前言一、简介arduino串口通信常用API1. Serial.begin()2. Serial.print()3. Serial。println()4. Serial.read()5. Serial.available()6. if (Serial)二、arduino串口通信代码演示1.arduino与电脑通信前言提示:以下是本篇文章正文内容,下面案例可供参考一、简介arduino串口通信常用API提示:串口通信原理见:串口原理arduino中的串口通信使用的是 Serial 类,.

2021-05-08 15:34:42 658

原创 51单片机串口通信详解

文章目录前言一、计算机通信简介二、串口通信简介1、简介2、同步通信和异步通信2.1 同步通信2.2 异步通信3、串行通信的传输方式4、串口通信硬件电路5、常见接口介绍三、串口相关寄存器详解1、特殊功能寄存器SCON2、PCON寄存器3、TMOD寄存器(定时器工作方式寄存器)4、代码演示(单片机和电脑通信)前言本文为笔者学习过程的笔记,主要内容为串口通信,使用的开发板为51单片机,后期会补充其他平台。提示:以下是本篇文章正文内容,下面案例可供参考一、计算机通信简介概念:计算机与外部设备或计算.

2021-05-06 20:22:54 4541

原创 UNIX环境高级编程 - - - 文件编程1

UNIX环境高级编程 - - - 文件编程1文章目录UNIX环境高级编程 - - - 文件编程1前言一、什么是文件描述符?二、文件编程API详解1、creat函数2、open函数3、openat函数4、close函数5、lseek函数总结前言文中描述的函数经常被称为不带缓冲的I/O——打开文件、读文件、写文件等UNIX系统中的大多数文件I/O都只需要五个函数:open、read、write、lseek、以及close。一、什么是文件描述符?概念:对于内核而言,所有打开的文件都由文件描述符引

2021-05-05 20:01:54 160

原创 交叉编译详解

交叉编译详解文章目录交叉编译详解一、交叉编译是什么,什么是本地编译?二、为什么需要交叉编译?总结一、交叉编译是什么,什么是本地编译?交叉编译是:是在一个平台上生成另一个平台上的可执行代码。举例说明:我们在Windows中keil中编写C51代码,编译生成可执行代码生成 xxx.hex文件,xxx.hex文件是运行在51单片机上面,在Windows下并不能执行。C51交叉编译发生在keil集成IDE中本地编译是:是在当前平台下编译生成在当前平台上的可执行代码。二、为什么需要交叉编译?需要交叉

2021-04-29 17:11:17 1547

原创 C语言必须从main函数开始执行吗?

**C语言必须从main函数开始执行吗?**前言在C语言中main函数,是程序的入口,是程序的开始,也是在main函数结束。引出问题,C语言程序必须从main函数开始吗?回答:当然是否定的。在C primer plus 书中是这样解释的:C程序一定是从main()函数开始执行(目前不包括特殊情况)也就是说,C程序不一定是从main()函数开始,下面我们来讨论一下,这个问题。我查阅了一些资料,才弄清楚这个问题:参考博文链接:https://blog.csdn.net/king_cpp_p

2021-04-28 21:38:34 12201 1

空空如也

空空如也

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

TA关注的人

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