自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(29)
  • 收藏
  • 关注

转载 数据结构与算法之位运算

把数字转化为二进制表示后,对每一位的0或者1进行运算,比如与、或、异或、左移、右移等;左移n位:丢弃最左边的n位,右边补n个0;右移n位:丢弃最右边的n位,左边补符号位(无符号则补n个0,有符号则补n个1);二进制中1的个数(剑指offer---面试题10)题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制1001,有2位是1,...

2019-09-02 22:15:00 120

转载 数据结构与算法之递归、循环、动态规划、回溯

递归:代码简洁,但是效率低(每次函数调用都有时间和空间的开销);循环:和递归相反;斐波那契数列(剑指offer---面试题9)题目:写入一个函数,输入n,求斐波那契(Fibonacci)数列的第n项,斐波那契数列的定义:f(n) = f(n-1) + f(n-2),初始值f(0)=0且f(1)=1;解题思路:(1)递归:根据f(n)的定义来递归计算;(2)...

2019-09-02 21:39:00 207

转载 数据结构与算法之查找、排序、哈希表

查找:顺序查找、二分查找、哈希表查找、二叉排序树查找;排序:冒泡、插入、归并、快排;快排中的Partition函数对公司所有员工的年龄排序---计数排序二维数组的查找(剑指offer---面试题3)详情见“数组”专栏:查找;旋转数组的最小数组(剑指offer---面试题8)详情见“数组”专栏:查找;调整数组顺序使奇数位于偶数前面(剑指offer--...

2019-09-02 21:10:00 321

转载 数据结构与算法之图

未完待续~转载于:https://www.cnblogs.com/bo1990/p/11442059.html

2019-09-01 13:14:00 96

转载 数据结构与算法之树

根节点没有父节点,其他每个结点只有一个父节点;叶节点没有子节点,其他每个结点都有一个或多个子节点;二叉树:每个结点最多只能有两个子结点。遍历方式有三种:前序(根-左-右)、中序(左-根-右)、后序(左-右-根);二叉排序树:对于每个结点,左子树所有结点 < 根结点,根结点 < 右子树所有结点;struct BinaryTreeNode{ ...

2019-09-01 13:13:00 88

转载 数据结构与算法之队列

先进先出,只能在队尾插入,队首删除应用领域:两个队列实现栈、树的BFS(宽度优先遍历);用两个队列实现一个栈(剑指offer---面试题7习题)题目:用两个队列实现一个栈。栈的声明如下:请实现它的两个函数push和pop,分别完成在入栈和出栈的功能;1 template <typename T> class CStack 2 { 3 pub...

2019-09-01 13:07:00 69

转载 数据结构与算法之栈

栈只能在顶端插入或删除元素,它的特点是先进后出。应用领域:操作系统会为每个线程创建一个栈用来存储函数调用时的各个函数的参数、返回值及临时变量。用两个栈实现队列(剑指offer---面试题7)题目:用两个栈实现一个队列。队列的声明如下:请实现它的两个函数push和pop,分别完成入队和出队的功能; 1 template <typename T> cl...

2019-09-01 13:06:00 65

转载 数据结构与算法之链表

由指针把若干个结点连接成链状结构。它是一种动态结构,因为在创建链表时无须知道链表长度。插入一个结点时只需要为新结点分配内存,然后调整指针的指向即可。如果链表的头指针会有更改,那么参数应该设为指向指针的指针,即ListNode **pHead。struct ListNode{ int m_nKey; ListNode *m_pNext;...

2019-09-01 13:05:00 66

转载 数据结构与算法之字符串

字符串是有若干字符组成的序列,C/C++中每个字符串都以'\0'作为结尾,这样就很容易找到字符串的最后尾部,但是需要一个额外字符的开销,容易造成越界;常量字符串是在一块单独的只读的内存区域,其内容不可更改;替换空格(剑指offer---面试题4)题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy.”,则输出“We%20are...

2019-09-01 12:43:00 163

转载 数据结构与算法之数组

连续内存且顺序存储,在创建数组时必须指定容量大小;优点:时间效率高,即查找效率高O(1),而且可以实现简单的哈希表;缺点:空间效率低,即使只存储一个数据也要为所有数据分配空间,而且插入和删除效率低O(n);二维数组的查找(剑指offer---面试题3)题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输...

2019-09-01 12:31:00 392

转载 Linux内核之整体架构

链接:https://blog.csdn.net/changexhao/article/details/78321295(https://www.cnblogs.com/wrjvszq/p/4257164.html)一、Linux体系架构Linux内核只是Linux操作系统的一部分,对下它管理系统的所有硬件设备,对上它通过系统调用给运行时库或应用程序提供接口;其核心功能就是管理硬...

2019-08-29 12:04:00 363

转载 Linux之静态库、共享库

一、静态库和共享库的区别静态库在编译的时候被加载,而共享库在执行之后才被加载加载静态库编译所生成的可执行文件比使用共享库的方式要大静态库以.a为后缀,共享库以.so为后缀二、静态库的制作gcc -c add.c sub.c(编写源文件,gcc -c命令生成对应的目标文件add.o和sub.o)ar crs -o libmath.a add.o sub....

2019-08-29 10:45:00 100

转载 驱动开发之libusb函数

一、libusb常用数据结构libusb_device *list:设备列表libusb_device_handle *handle:设备句柄struct libusb_device_descriptor desc:设备描述符struct libusb_config_descriptor conf:配置描述符二、libusb常用API函数1 会话的开启和结...

2019-08-28 16:22:00 433

转载 驱动开发之USB设备基本概念

链接:https://blog.csdn.net/zqixiao_09/article/details/50984074一、USB设备由3个功能模块组成,USB总线接口、USB逻辑设备和功能单元:USB总线接口:USB设备中的串行接口引擎SIEUSB逻辑设备:被USB系统软件看作是一个端点的集合功能单元:被客户软件看作是一个接口的集合二、从设备架构的角度来看,...

2019-08-28 15:29:00 426

转载 Ubuntu之安装常用软件

一、Ubuntu下需要安装软件的三种方法(链接:https://www.cnblogs.com/xwdreamer/p/3623454.html),如下:1 apt-get直接安装sudo apt-get install xxxsudo apt-get remove xxxsudo apt-get update:更新软件仓库,即访问源列表的每个网址并读取软件列表,然后...

2019-08-28 11:59:00 347

转载 Makefile之CMakeLists.txt编写

gcc、make、cmake的区别和联系:(1)gcc是GNU Compiler Collection编译器,可以编译多种编程语言,比如C/C++等;当包含多个源文件时需要用gcc命令逐个去编译,工作量较大且比较混乱;(2)make工具可以看成一个只能的批处理工具,它本身并没有编译和链接的功能,而是通过调用Makefile文件中用户指定的命令来进行编译和链接的;当工程较大时,手动...

2019-08-27 17:25:00 332

转载 Shell之基本脚本

1 交互式脚本:变量内容由用户决定1 #!/bin/bash2 3 read -p "Please input your first name: " firstname4 read -p "Please input your last name: " lastname5 echo -e "Your full name is: $firstname $lastnam...

2019-08-27 16:40:00 200

转载 Linux之进程间通信IPC

  进程间通信(IPC)就是指不同进程之间传播和交换数据,每个进程各自有不同的用户地址空间(虚拟地址空间),任何一个进程的全局变量在另一个进程中都看不到,所以进程间要交换数据必须能通过内核,在内核中开辟一块缓冲区,进程A把数据从用户空间拷贝到内核缓冲区,进程B再把数据从内核缓冲区拷贝到自己的用户空间,内核提供的这种机制称为进程间通信;Linux下IPC机制主要分为:管道/FIFO、消息队...

2019-08-23 17:52:00 210

转载 Linux之共享内存shm和内存映射mmap

一、共享内存shm1 概念:多个进程的地址空间都映射到同一块物理内存,这样多个进程都能看到这块物理内存,实现进程间通信,而且不需要数据的拷贝,所以速度最快。二、内存映射mmap1 前言:先介绍一下普通的读写文件的原理,进程调用read/write系统调用后会陷入内核,内核开始读写文件,假设内核是在读文件,内核先把文件读取到内核缓冲区,然后把内核缓冲区的数据拷贝到用户缓冲区...

2019-08-21 14:58:00 500

转载 Linux之I/O多路复用

I/O多路复用:单个线程可以同时处理多个I/O;一、select:成功则返回已准备好的文件描述符个数,超时则返回0,出错则返回-1;(1)头文件包含:#include <sys/select.h>、<unistd.h>、<sys/time.h>;(2)select返回后集合fdset中只有事件发生了的fd对应的位被置为1,其他位都被清空为...

2019-08-20 22:06:00 108

转载 Linux之进程处理函数

Linux的进程处理函数需包含头文件:#include <unistd.h>一、进程函数1 进程创建pid_d fork(void);2 进程终止:只有exit才会先清理I/O再进入内核,所以输出缓冲中的所有数据都会被写入到文件中,等同于return 0;void exit(int status); ---<stdlib.h>v...

2019-08-20 20:31:00 142

转载 Linux之线程处理函数

Linux的线程处理函数需包含头文件:#include <pthread.h>一、线程函数:成功则返回0,出错则返回错误编号1 线程创建int pthread_create(pthread_t *tidp, const pthread_attr_t *attr, void *(*start_rtn)(void *), void *arg);2 线程终止...

2019-08-20 17:22:00 128

转载 Linux之文件和目录处理函数

Linux下的大部分文件/目录处理函数都需包含头文件:#include <sys/stat.h>,少部分需包含<unistd.h>或<stdio.h>01 文件类型:S_ISREG(st_mode)---普通文件S_ISDIR(st_mode)---目录S_ISCHR(st_mode)---字符设备S_ISBLK(st_mode...

2019-08-20 15:31:00 117

转载 C语言之字符处理函数

一、C语言标准库中字符处理函数许包含头文件 <string.h>,常用字符串吹函数列表如下:1 计算字符串长度size_t strlen(const char *str); //不包含结束符'\0'2 字符串拷贝char *strcpy(char *dest, const char *src);char *strncpy(char *dest,...

2019-08-20 11:23:00 235

转载 程序员的自我修养之ELF文件

一、文件头: sizeof(Elf32_Ehdr)=52e_type: 类型---可重定位文件.o、可执行文件、共享目标文件.soe_ehsize: 文件头大小---52e_machine: CPU平台属性,如Intel_x86;e_entry: 入口虚拟地址,但是可重定位文件没有;e_shoff: 段表偏移量, 即在ELF文件的位置;下面两个11*40=440表...

2019-08-20 00:37:00 143

转载 TCP/IP之基本概念一

一、应用层1 DNS:域名系统(Domain Name System),将互联网上的主机名字即域名转换为IP地址,端口号53,解析过程如下:如果主机和本地的缓存里面没有对应的IP地址则:主机--->本地域名服务器:本地--->根本地--->顶级本地--->权限本地域名服务器--->主机;2 FTP:文件传送协议(Fil...

2019-08-20 00:19:00 285

转载 操作系统之基本概念一

一、进程、线程管理1 基本概念进程是资源分配的基本单位,是正在执行程序的实例,是动态的,而程序是静态的,同一个程序跑两次则是两个进程;线程是CPU独立调度的基本单位,共享整个地址空间、全局变量、打开的文件描述符;私有数据:堆栈、寄存器、程序计数器;并行:同一时刻有多个进程在运行,比如多核处理器;并发:同一时间段有多个进程在运行,但是同一时刻只有1个进程在运行;...

2019-08-19 23:15:00 121

转载 C语言之I/O处理函数

一、在Linux的文件系统调用中,所有函数都是根据文件描述符fd来访问文件的,如下:1 文件描述符的创建和关闭int open(const char *path, int oflag,...); //成功则返回文件描述符fd,出错则返回-1int create(const char *path, mode_t mode);//成功则返回只写打开的文件描述符fd, 出错则...

2019-08-19 21:20:00 145

转载 数据结构与算法之十大排序

转载:https://blog.csdn.net/zhangshk_/article/details/8291109301 术语:稳定:假设排序前a在b前面且a=b,那么排序后a仍然在b前面,即排序过程中不会出现跳跃式交换数据,只能相邻的才交换数据;不稳定:和上面相反;内排序:比较排序,即所有的排序操作均在内存中完成,比如冒泡、选择、插入、希尔、堆、快排、归并;外...

2019-08-19 19:23:00 72

空空如也

空空如也

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

TA关注的人

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