摘要:
1.Linux前身Unix。1970年Unix元年。Linux时间戳:1970年0点0分0秒开始的秒数。 2.GNU计划。开源计划。GNU/Linux。GCC(GNU Compile Collection) 3.Linux分支:Ubuntu,Debian,Centos等。 4.关机。 # shutd 阅读全文
摘要:
1.UDP通信 #include <sys/types.h> #include <sys/socket.h> ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_ 阅读全文
摘要:
1.TCP通信并发。使用多线程或多进程。 1. 一个父进程,多个子进程 2. 父进程负责等待并接受客户端的连接 3. 子进程:完成通信,接收一个客户端连接就创建一个子进程用于通信 ps: 回收子进程使用SIGCHILD信号,使用sigaction()信号捕捉函数,使用waitpid()非阻塞回收子进 阅读全文
摘要:
1.网络结构模式 C/S结构(客户端/服务器) 服务器存有多个用户共享的信息与功能,执行后台服务,如控制共享数据库的操作等 客户端为用户专有,负责执行前台功能,包括出错提示、在线帮助等功能,并且可以在子程序间自由切换。 优点:1)能充分发挥客户端PC的处理能力,很多工作可以在客户端吃力后嫁给服务器, 阅读全文
摘要:
平衡树: AVL 树 2-3 树 2-3-4 树 红黑树 B-树 红黑树的性质: 1.每个结点要么是黑色或者红色。 2.根结点和叶节点(nil)是黑色。 3.如果一个结点是红色的,则它的父结点和两个子结点都是黑色的。 4.对每个结点,从该结点到其所有后代叶结点的简单路径上,均包含相同数目的黑色结点, 阅读全文
摘要:
分治:将问题划分为互不相交的子问题递归求解。 动规:应用于子问题重叠的情况。求解过程中将子问题的解记录在表格中。 动态规划主要用于求解最优化问题。 求解步骤: 找到最优子结构。最优子结构性质:问题的最优解由相关的子问题的最优解组合而成,而这些子问题可以独立求解。 递归地定义最优解的值。 自底向上地计 阅读全文
摘要:
1. 01背包 问题:N种物品,每种物品1个,第i个物品重量wi,价值vi。背包容量M。选择装入背包的物品使得价值最大。 /* 二维状态:f[i][j] 表示对于前 i 个物品,总体积为 j 的情况下可以获得的最大价值。 结果:max(f[N][M])。 状态转移: 1. 不选择第 i 个物品:f[ 阅读全文
摘要:
爬楼梯问题: 实际是求排列数。即:对于爬上3层,先2后1和先1后二是两种不同的方法。 状态定义:dp[i] 表示到达第i层的方法有多少种。 状态转移:dp[i] = dp[i - 1] + dp[i- 2]; 零钱兑换问题: 实际是组合数问题。即:要凑3块钱,先选择2块还是先选择1块的零钱都只算1种 阅读全文
摘要:
剑指offer12:矩阵中的路径 https://leetcode-cn.com/problems/ju-zhen-zhong-de-lu-jing-lcof/ 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 阅读全文
摘要:
1.线程是允许应用进程并发执行多个任务的一种机制。一个进程可以包含多个线程。 同一个程序中多有的线程均会独立执行相同程序,且共享同一份全局内存区域,包括初始化数据段、未初始化数据段、堆内存段。 进程是CPU分配资源的最小单位,线程是操作系统调度执行的最小单位。 线程是轻量级的进程(LWP:Light 阅读全文