kikajack的博客

保险,互联网

Nginx 官网文档翻译汇总

Nginx 官网文档,各个模块的手册还在这里。 改版后的新 Nginx 官网文档 概述 新手指南 控制 Nginx 管理员指南 Admin Guide 安装 基本功能 在运行时控制 Nginx 进程 创建 Nginx 配置文件 负载均衡 HTTP 负载均衡 实时配置(O...

2018-04-07 20:22:33

阅读数 604

评论数 0

Docker 官网文档翻译汇总

官方文档地址 Guide Docker 入门 Docker 入门教程 方向和设置 容器 服务 swarm 集群 stack 部署应用 概述 用 Docker 进行开发 在 Docker 上开发应用 应用开发的最佳实践 开发镜像 编写 Dockerfile 的最佳实...

2018-04-07 17:25:45

阅读数 824

评论数 1

【算法与数据结构】动态规划

用递归求解问题时,反复的嵌套会浪费内存。而且更重要的一点是,之前计算的结果无法有效存储,下一次碰到同一个问题时还需要再计算一次。例如递归求解 Fibonacci 数列,假设求第 n 位(从 1 开始)的值,C 代码如下: #include <stdio.h> int ...

2019-05-10 22:13:10

阅读数 8

评论数 0

【算法与数据结构】图的最小生成树 MST - Prim 算法

Prim 算法属于贪心算法。 #include <stdio.h> #define VERTEXNUM 7 #define INF 10000 typedef struct Graph { int vertex[VERTEXNUM]; int edge[VERTE...

2019-05-06 22:52:01

阅读数 13

评论数 0

【C语言工具】AddressSanitizer - 内存检测工具

Github 地址:https://github.com/google/sanitizers Wiki 地址:https://github.com/google/sanitizers/wiki/AddressSanitizer 参考:https://www.jianshu.com/p/3a2df9...

2019-05-04 13:56:16

阅读数 50

评论数 0

【算法与数据结构】二叉堆和优先队列 Priority Queue

优先队列的特点 普通队列遵守先进先出(FIFO)的规则,而优先队列虽然也叫队列,规则有所不同: 最大优先队列:优先级最高的元素先出队 最小优先队列:优先级最低的元素先出队 优先队列可以用下面几种数据结构来实现: 基于堆 heap,包括下面几种堆: 二叉堆 多项式堆 Fibonacci 堆 ...

2019-05-03 22:16:33

阅读数 13

评论数 0

【算法与数据结构】三种简单排序 - 冒泡排序、选择排序、插入排序

冒泡排序 逐个比较相邻元素,如果逆序则交换。每一趟都会让一个元素就位,总共比较 n-1 趟。 n 个元素,需要进行 n - 1 轮冒泡,每次冒泡都会有一个元素就位,所以每轮冒泡的循环次数都会减一。时间复杂度为: 1 + 2 + … + n-1 = n(n-1)/2 = O(n^2) 初始值: 5...

2019-05-02 12:33:23

阅读数 11

评论数 0

【算法与数据结构】并查集 Disjoint Set

并查集(Disjoint Set)用来判断已有的数据是否构成环。 在构造图的最小生成树(Minimum Spanning Tree)时,如果采用 Kruskal 算法,每次添加最短路径前,需要先用并查集来判断一下这个路径是否会构成环。 思路 遍历图的每一条边,按照下面的原则将对应的两个顶点添加到集...

2019-04-30 13:25:04

阅读数 10

评论数 0

【算法与数据结构】二叉堆和堆排序

构建堆 堆本身也是个二叉树,有两个限制: 堆必须是完全二叉树 堆中任一父结点的值大于其左右两子节点的值 因为完全二叉树中,数据排列顺序是从上而下,从左至右,所以可以用数组的形式保存数据。通常根结点作为数组的 0 号元素,其左右孩子分别是 2 号、3 号元素,以此类推。 保证一个元素符合要求 保...

2019-04-29 13:30:29

阅读数 12

评论数 0

【Linux 应用编程】进程管理 - 进程间通信IPC之共享内存 mmap

IPC(InterProcess Communication,进程间通信)是进程中的重要概念。Linux 进程之间常用的通信方式有: 文件:简单,低效,需要代码控制同步 管道:使用简单,默认阻塞 匿名管道 pipe:只存在于内核缓冲区,只能用于有血缘关系的进程 有名管道 FIFO:在文件系统中...

2019-04-14 13:37:15

阅读数 16

评论数 0

【Linux 应用编程】进程管理 - 进程间通信IPC之管道 pipe 和 FIFO

IPC(InterProcess Communication,进程间通信)是进程中的重要概念。Linux 进程之间常用的通信方式有: 文件:简单,低效,需要代码控制同步 管道:使用简单,默认阻塞 匿名管道 pipe:只存在于内核缓冲区,只能用于有血缘关系的进程 有名管道 FIFO:在文件系统中...

2019-04-14 11:41:16

阅读数 18

评论数 0

【Linux 应用编程】进程管理 - 进程、线程和程序

基本概念 程序和进程的区别 程序是平台相关的二进制文件,只占用磁盘空间。编写完程序代码后,编译为可执行的二进制文件即可。 进程是运行中的程序,占用 CPU、内存等系统资源。 通过 Shell 命令,可以在终端启动进程,例如执行 ls 命令: 找到命令对应的二进制文件 使用 fork() 函数创建...

2019-04-08 22:23:39

阅读数 22

评论数 0

【Linux 应用编程】基础知识

错误提示 Linux 提供的系统调用API,通常会在失败的时候返回 -1。如果想获取更多更详细的报错信息,需要借助全局变量 errno 和 perror 函数: #include <stdio.h> void perror(const char *s); #inclu...

2019-04-07 14:16:33

阅读数 15

评论数 0

【Linux 应用编程】文件IO操作 - 常用函数

Linux 系统中的各种输入输出,设计为“一切皆文件”。各种各样的IO统一用文件形式访问。 文件类型及基本操作 Linux 系统的大部分系统资源都以文件形式提供给用户读写。这些文件可以分为: 普通文件:即一般意义上的磁盘文件; 设备文件:系统中的具体设备; 管道文件、FIFO 文件:用于进程间通...

2019-04-06 22:37:03

阅读数 22

评论数 0

数据结构

基本数据结构 集合:元素之间没有关系,各自独立 线性结构:元素之间是一对一的关系,除首尾元素外每个元素都有一个前驱和一个后继 树:元素之间是一对多的关系,每个父元素可以有多个子元素,但子元素只能有一个父元素 图:元素之间是多对多的关系,每个元素都可以跟另外的一个或多个元素关联 在上面这四种结构...

2019-01-31 18:41:09

阅读数 56

评论数 0

Linux 命令 - man 查看命令的文档

man 命令是 Linux 中最常用的命令,碰到任何让你疑惑的命令,都可以 man 一下来查看详情。不只是 shell 命令,C 语言库函数和系统调用等内容也可以通过 man 命令查看。 man 命令默认查看的是 shell 命令的文档,可以指定参数 2 查看系统调用,3 查看 C 库函数(需要提...

2019-01-27 13:46:02

阅读数 113

评论数 0

C 语言的函数 - 内存分析

函数基本概念 Linux 中,函数在内存的代码段(code 区),地址比较靠前。 函数定义 C 语言中,函数有三个要素:入参、返回值、函数名,缺一不可。函数使用前必须先声明,或者在使用之前定义。 函数声明格式如下: int test(int a, char *p); 函数定义格式如下: int ...

2019-01-22 23:13:02

阅读数 53

评论数 0

程序的内存分布 - 以 Linux 为例,基于 C 语言分析

这里以 Linux 为例,用 C 语言进行演示。 内存模型 - 内存空间名称 内容 读写操作 分配时机 高地址 kernel 内核空间 命令行参数、环境变量等 不可读写 程序运行时 - stack 栈空间 局部变量 可读写 程序运行时 - heap 堆空间 malloc()...

2019-01-21 23:38:53

阅读数 76

评论数 0

C 语言结构体 struct 及内存对齐

对于 32 位数据总线的机器,每次内存操作都固定传输 32 位数据,且都没有重叠时,效率是最高的。所以操作系统把内存按照数据总线的位数划分为独立单元,每个单元都完整的分配给一个程序。 C 语言的 struct 结构体中,可以放各种类型、不同长度的数据,可以看做一个数据包。为了在程序内部提高内存访问...

2019-01-20 22:43:20

阅读数 41

评论数 0

C语言的指针和数组

指针和内存 指针变量也是个变量,不过保存的是另一个变量的地址。另外编译器还会记住指针所指向变量的类型,从而在指针运算时根据变量类型采取不同操作。 例如,char * a 定义了char 类型的指针变量 a,通过 *a 读取数据时,每次只会读一个字节(char 类型变量的长度)。而int * i 定...

2019-01-20 22:15:05

阅读数 28

评论数 0

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