04 2019 档案

【算法与数据结构】并查集 Disjoint Set
摘要:并查集(Disjoint Set)用来判断已有的数据是否构成环。在构造图的最小生成树(Minimum Spanning Tree)时,如果采用 Kruskal 算法,每次添加最短路径前,需要先用并查集来判断一下这个路径是否会构成环。思路遍历图的每一条边,按照... 阅读全文

posted @ 2019-04-30 13:25 kikajack 阅读(270) 评论(0) 推荐(0)

【算法与数据结构】二叉堆和堆排序
摘要:构建二叉堆二叉堆本身也是个二叉树,有两个限制:堆必须是完全二叉树堆中任一父结点的值大于其左右两子节点的值(大顶堆),或小于其左右两子节点的值(小顶堆)因为完全二叉树中,数据排列顺序是从上而下,从左至右,所以可以用数组的形式保存数据。通常根结点作为数组的 0 ... 阅读全文

posted @ 2019-04-29 13:30 kikajack 阅读(235) 评论(0) 推荐(0)

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

posted @ 2019-04-14 13:37 kikajack 阅读(545) 评论(0) 推荐(0)

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

posted @ 2019-04-14 11:41 kikajack 阅读(517) 评论(0) 推荐(0)

【Linux 应用编程】进程管理 - 进程、线程和程序
摘要:基本概念程序和进程的区别程序是平台相关的二进制文件,只占用磁盘空间。编写完程序代码后,编译为可执行的二进制文件即可。进程是运行中的程序,占用 CPU、内存等系统资源。通过 Shell 命令,可以在终端启动进程,例如执行 ls 命令:找到命令对应的二进制文件使... 阅读全文

posted @ 2019-04-08 22:24 kikajack 阅读(731) 评论(0) 推荐(0)

【Linux 应用编程】基础知识
摘要:错误提示Linux 提供的系统调用API,通常会在失败的时候返回 -1。如果想获取更多更详细的报错信息,需要借助全局变量 errno 和 perror 函数:#include void perror(const char *s);#include const... 阅读全文

posted @ 2019-04-07 14:17 kikajack 阅读(184) 评论(0) 推荐(0)

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

posted @ 2019-04-06 22:37 kikajack 阅读(1280) 评论(0) 推荐(0)