- 博客(57)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 通过我写的文章来认识我,博客文章快速导航(慢慢整理)
1. 前言 本博客持续更新,本篇是博主所写文章的快速索引。 不得不说,笔者学习的东西很多,很杂,有些东西的学习,并不是笔者自愿的,也和笔者的经历有关吧。 特别强调笔者以前的博客为bushipeien,某天脑门一热想和过去的排版及方向告别,重新开始在该博客更新。为了节约时间,可能不会将以前的文章重新排版整理到本博客。最后本文也单独列出博主认为比较好的,能够反映博主学习思考过程的文章...
2020-08-05 10:52:30
614
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 重新开始,本博客声明
本博客所有文章都是中文原创,作者采用独特的写作风格,保证以下以下几点: 凡引用都会标明出处内容不涉及商业相关保留原文英文引用,并很少直白翻译 最后作者本人换了账号,打算用此博客来长期更新。如果您对本博客博文有疑问的地方请及时指正。原来博客地址:http://blog.csdn.net/bushipeien...
2018-01-06 18:35:10
149
原创 高级IO之简单的select_poll_epoll实验(五)
1. 题目 笔者出题:分别使用select, poll, epoll实现回显程序2. 代码展示2.1:select#include <fcntl.h>#include <stdio.h>#include <stdlib.h>#include <err.h>
2021-01-19 15:45:44
436
原创 高级IO之Select_pselect_poll_epoll(四)
1. 基础概念 同时操作多个fd时,如果使用阻塞的方式,可能导致程序效率低下。我们可以使用非阻塞方式的IO,通过不断查询数据操作的结果来进行接下来的操作,这种处理方式就是轮询,缺点就是非常消耗CPU资源。所以在某种意义上其相当于阻塞的调用了IO函数read或者write,可以通过异步IO的方式来解决这个问题,但是因为一个进程只使用一个或者几个信号,当捕获该信号时无法判断是哪个fd数据就绪。最...
2021-01-19 15:45:32
379
原创 网络编程之Sockets Introduction(二)
1. inet_aton, inet_addr, and inet_ntoa Functions#include <arpa/inet.h>int inet_aton(const char *strptr, struct in_addr *addrptr);Returns: 1 if string was valid, 0 on errorin_addr_t inet_a...
2021-01-19 15:44:46
260
原创 网络编程之Sockets Introduction(一)
前言 一直在想该怎么记录UNP篇,最后我想我要锻炼自己归纳总结的能力,抓重点,抓应用。1. introdution 本章主要分析了地址结构体的相关API函数,及2进制和字符串形式的地址之间的转化函数,最后这些地址转换函数依赖于具体的IP协议,UNP中提出了自己的以sock_开头的地址转换函数,其不依赖于具体的协议。 These structures can be ...
2021-01-19 15:44:25
277
原创 网络编程之Elementary TCP Sockets(二)
1. fork and exec Functions 笔者在APUE中比较详细的记录过fork函数,这里相关细节不在赘述,只看看和网络编程相关的概念: The parent calls accept and then calls fork. The connected socket is then shared between the parent and child. Nor...
2021-01-19 15:44:00
272
原创 网络编程之Elementary TCP Sockets(一)
1. socket#include <sys/socket.h>int socket(int family, int type, int protocol);Returns: non-negative descriptor if OK, −1 on error 上表就是对该函数的一个总结,在APUE篇笔者也记录过该内容,在此不赘述,上表没有反映出来的几点需要注意下...
2021-01-19 15:43:43
450
原创 《DP学习系列》从零开始学习动态规划,有依赖的背包问题(七)
1. 预备部分 如果真的从零开始学习DP,那么从七讲以后的部分就要烧脑细胞了。如果是为了笔试准备,笔者感觉后面就可以不用看了。但是笔者这里还是完整记录完,我们看别人的结论尚且要思索万千,所以崔添翼真是非常聪明。该部分来自NOIP2006的比赛原题,所以我们初学者也有必要看看前因后果,原题如该博主记录所示。2. 简化的问题 金明的预算的原题节选: 把想买的物品分为两类:主...
2020-11-20 11:47:44
223
原创 《DP学习系列》从零开始学习动态规划,混合背包(四)
前言 引文出自崔添翼背包9讲。1. 题目对比 问题1:有 N 件物品和一个容量为 V 的背包。放入第 i 件物品耗费的费用是 Ci,得到的价值是 Wi。求解将哪些物品装入背包可使价值总和最大。 问题2:有N种物品和一个容量为V的背包,每种物品都有无限件可用。放入第i种物品的费用是Ci,价值是Wi。求解:将哪些物品装入背包,可使这些物品的耗费的费用总和不超过背包容量,...
2020-11-20 11:47:27
152
原创 DSAA之图论Kruskal算法(七)
1. 回顾 Kruskal算法需要使用并查集,所以记录该篇前需要回顾DSAA之THE DISJOINT SET ADT(一)和DSAA之THE DISJOINT SET ADT(二)。不相交集合的概念和实现都是比较简单。2. Kruskal’s Algorithm A second greedy strategy is continually to select ...
2020-11-20 11:47:15
209
原创 算法补充之KMP作用原理(一)
1. 整体把握 一般都可以想到O(n2)O(n2)O(n^2)的暴力算法,KMP改进暴力算法使其算法复杂度为O(m+n)。本文参考:维基百科。2.算法学习2.1 使用局部匹配表 To illustrate the algorithm’s details, consider a (relatively artificial) run of the algorithm,...
2020-11-20 11:47:04
198
原创 DSAA之图论Dijkstra(贪婪算法)(五)
1. 前言 有网友把Dijkstra归为BFS算法,笔者觉得是不准确的,两者的差别在于每个阶段是否是最优选择,也就是是否达到局部最优,当然不保证全局最优。2. 定义 We keep all of the same information as before. Thus, each vertex is marked as either known or unknown. A ...
2020-11-20 11:46:41
261
原创 The Python Tutorial之Class(一)
1. A Word About Names and Objects Objects have individuality, and multiple names (in multiple scopes) can be bound to the same object. This is known as aliasing in other languages. For exam...
2020-11-20 11:46:01
255
原创 The Python Tutorial之Class(二)
1. Class Objects When a class definition is entered, a new namespace is created, and used as the local scope — thus, all assignments to local variables go into this new namespace. In particular, f...
2020-11-20 11:45:52
235
原创 The Search Tree的Python实现(二)
1. The Search Tree ADT-Binary Search Trees The property that makes a binary tree into a binary search tree is that for every node, X, in the tree, the values of all the keys in the left subtree...
2020-11-20 11:45:42
194
原创 The Python Tutorial之Class(三)
1. Inheritance The name BaseClassName must be defined in a scope containing the derived class definition. In place of a base class name, other arbitrary expressions are also allowed. This can b...
2020-11-20 11:45:30
126
原创 《DP学习系列》Longest Valid Parentheses的一些DP细节思考
1. Longest Valid Parentheses Given a string containing just the characters ‘(’ and ‘)’, find the length of the longest valid (well-formed) parentheses substring. Example 1: Input: “(()” ...
2020-11-20 11:44:18
227
原创 《DP学习系列》从零开始学习动态规划,完全背包(二)
前言 如果您也是参考笔者的记录学习,那么推荐您至少先看一遍原版背包九讲。本系列只是初学者对若干问题的补充和思考。1. 题目 有N种物品和一个容量为V的背包,每种物品都有无限件可用。放入第i种物品的费用是CiCiC_{i},价值是WiWiW_{i}。求解:将哪些物品装入背包,可使这些物品的耗费的费用总和不超过背包容量,且价值总和最大。 2. 基本思路 如果仍然按照...
2020-11-20 11:43:53
222
原创 进程IPC之PIPE(一)
1. PIPE#include <unistd.h>int pipe(int fd[2]);Returns: 0 if OK, −1 on error Pipe半双工且只能用于具有共同父进程的进程间通信, 当其返回的时候设置fd[0]为读端口,fd[1]为写端口,且fd[1]与fd[0]相连。如下图所示: 其中Pipe的使用关键只要记住下面这个图: ...
2020-11-19 11:53:30
501
原创 第三章 万物皆对象
前言今天打卡第三章,目标记录下关键点,记录下疑问点,按照书的排版笔记。以前记笔记都是流水账非常详细,花费了大量时间。现在改变记笔记的方式。也不求非要是英文原版教材,中文教材翻译尚可,就直接看中文。...
2020-09-01 15:29:25
125
原创 LTE RACH
Why RACH ? (What is the functionality of RACH ?)For sure, it is not for confusing you
2019-08-06 17:49:28
633
原创 LTE Basic Procedure/Time Sync Process
OverviewUE decode Primary sync with three different Primary Sync Sequence and figure out which sequence is assigned for the cell and obtain the primary time sync.Apply the primary sync sequence fo...
2019-08-05 15:40:41
224
原创 5G/NR Downlink Schedule
1. High Level Factors for Scheduling2. Type of Downlink SchedulingThere are two types of scheduling for downlink. One is called ‘Dynamic Scheduling’ and the other one SPS(Semi Persistent Schedulin...
2019-07-29 22:31:03
606
原创 《leetcode》第一阶段汇总(21-25题)
递归算法 如果深入探讨递归,会有非常多的东西。在做这几个题的时候,使用递归能大大简化代码复杂度。在旧认知篇里面,自己提到了递归和迭代是等价的,更准确的说尾递归和迭代是等价的。然后做了以下几个题之后,我发现我似乎没有真正理解递归的精髓。本篇也是冰山一角,以后有时间再深入研究。21. Merge Two Sorted Lists 已知mergeTwoLists返回两个链表合成后链表的头...
2018-07-11 18:31:31
92
1
原创 《leetcode》第一阶段汇总(10-20题)(二)
方向调整 不是所有的公司都把算法放到很高的位置,基本数据库能力是根基。15. 3Sum 在2Sum问题中,可以使用one pass结合哈希表快速得到问题的答案。但是如果想在3Sum问题中,沿用之前的方式必然要解决重复元素的问题。现在有种可以解决Nsum的思路,基于2Sum的双指针方法。class Solution {public: vector<v...
2018-07-07 17:04:33
95
1
原创 从零开始算法篇之动态规划(三)
1. 回顾 此篇和笔者之前记录的背包九讲系列笔记接轨,现在回顾下笔者总结的背包九讲的一些内容:背一中,使用滚转数组优化了空间复杂度,针对不同的问题,初始状态的赋值也会相应不同。背二中,对于输入数据提前优化,减少待处理数据量的,这种排序优化应该保证是稳定的。然后对于选多件物品的问题,又可以使用二进制优化,将原本O(n)O(n)O(n)的复杂度降低到O(logn)O(logn)O(log...
2018-07-06 12:21:05
126
1
原创 《leetcode》第一阶段汇总(10-20题)(一)
前言 总结花时间蛮长的,比做题慢多了。~10. Regular Expression Matching 算是比较难的一道DP题,会有几个地方比较难想:状态比较难确定,F[i,j]F[i,j]F[i,j]该怎么表示会有疑惑状态转移方程难确定,很容易写出错的转移方程初始状态难确定,初始状态又是一个子DP题。 现在整理下自己AC版本的一些思考过程:1. 设F[i...
2018-07-05 17:40:16
113
1
原创 《leetcode》第一阶段汇总(1-9题)
序言 终于leetcode完成了前100题,现在总结下前阶段部分我觉得值得总结的题的细节。并非完整的结题报告,那将没有任何意义,毕竟在leetcode官网有更多详解的信息。1. Two Sum 和 3. Longest Substring Without Repeating Characters 这两个题都使用哈希表可以很快解决,但是在解决第三题的时候,我犯了点奇怪的错误,由此错误...
2018-07-03 18:14:51
90
1
原创 APUE查缺补漏之关于死锁
1. APUE中的死锁 最初接触到死锁是在APUE的记录篇中,并且总结了死锁产生的原因及预防的措施。现在重新回顾以前的知识: 造成死锁的原因 A thread will deadlock itself if it tries to lock the same mutex twice, but there are less obvious ways to create de...
2018-07-01 16:26:53
62
原创 从零开始算法篇之分治(二)
1. 回顾 回顾笔者以前记录的文章,DSAA之最大子序列之和问题(三)第一次遇到分治的思想,对最大子序列求和问题使用分治可以将O(n3)O(n3)O(n^3)降低到O(nlogn)O(nlogn)O(nlogn);然后在 DSAA之合并排序学习到了归并排序,使用分治的思想可以将排序的时间复杂度稳定在O(nlogn)O(nlogn)O(nlogn);之后DSAA之快速排序(一)篇中也使用了分...
2018-06-21 16:04:49
77
1
原创 从零开始算法篇之贪婪(一)
1. 回顾 图论篇忽略了网络流、关键路径分析法和NP完全问题,在DSAA的论述里面,这些内容都是作为了解性质,以后如果需要深入再单独学习。整体上看,基本的数据结构已经全部学完了,从此篇开始将详细学习经典五大常用算法,这章的课后题也会尽量解决。 回溯或者动态规划,笔者之前都或多或少接触过。背包九讲的下一步学习计划也正式和该篇汇合。另外笔者leetcode做题分支,已经快接近100道了。到...
2018-06-18 17:14:40
123
1
原创 DSAA之图论双连通及割点问题(十一)
1. 定义 A connected undirected graph is biconnected if there are no vertices whose removal disconnects the rest of the graph. If a graph is not biconnected, the vertices whose removal would dis...
2018-06-16 21:01:07
77
1
原创 DSAA之补充冒泡排序和选择排序
1. 回顾 之前学习过的排序算法有:归并排序、堆排序、快速排序、快速选择排序、基数排序、桶排序、计数排序、希尔排序、插入排序。其中不稳定的排序算法为堆、快、希、直接选择(区分快速选择),其他都是稳定排序。现在补充两个基础排序算法:冒泡和直接选择排序。2. 冒泡排序 比较简单,可以直接看代码:for(int i=0;i<nums.size();++i) //每次当前...
2018-06-16 17:20:13
80
1
原创 DSAA之图论DFS生成树和查找强连通分支(十)
1. 回顾 DSAA之图论DFS算法,初识回溯(八)的重点扩展了回溯算法,忽略了DFS生成树的若干问题。研究DFS生成树是必要的,因为其有些比较重要的应用,如:Biconnectivity。2. 无向图生成树 We graphically illustrate these steps with a depth-first spanning tree. The root ...
2018-06-15 16:36:23
84
1
原创 DSAA之图论Euler Circuits问题(九)
1. 从实际演变的问题 A popular puzzle is to reconstruct these figures using a pen, drawing each line exactly once. The pen may not be lifted from the paper while the drawing is being performed. As an extra...
2018-06-15 12:24:55
107
1
原创 DSAA补充之B树、B+树
1. 回顾 以前记录的B树DSAA之B-tree(六),这个定义真是有点四不像啊。是B+树的感觉,又没有底层的link。所以今天有必要重新审视下B树和B+树的概念。本文内容摘自维基百科。2. B树定义 According to Knuth’s definition, a B-tree of order m is a tree which satisfies the fol...
2018-06-14 13:16:47
122
1
原创 《DP学习系列》从零开始学习动态规划,泛化物品(八)
1. 定义 更严格的定义之。在背包容量为V 的背包问题中,泛化物品是一个定义域为0 … V 中的整数的函数h,当分配给它的费用为v时,能得到的价值就是h(v)。这个定义有一点点抽象,另一种理解是一个泛化物品就是一个数组h[0 …V ],给它费用v,可得到价值h[v]。 一个物品组可以看作一个泛化物品h。对于一个0 … V 中的v,若物品组中不存在费用为v的物品,则h(v) = 0...
2018-06-13 21:29:36
104
1
原创 DSAA之图论DFS算法,初识回溯(八)
1. 回顾 Depth-first search is a generalization of preorder traversal. We implicitly assume that for undirected graphs every edge (v, w) appears twice in the adjacency lists: once as (v, w) and ...
2018-06-13 20:46:45
145
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人