Pure Soul

Pure Soul

对世界充满好奇

50 篇文章 14 个分类 13 个标签

这里记录算法、工程、系统设计,以及一些认真写下来的生活观察。

最近更新

I/O多路复用之poll

2021-10-30 · Linux / socket

poll select, poll, epoll是IO多路复用当中的重要的三种实现方式,poll和epoll相对于select而言,只能在Linux下使用,但是select是跨平台的。同时poll相对于select而言,没有最大监听数量的限制。但是也是监管一系列的文件描述符,阻…

阅读文章

2021-10-28

I/O多路复用之select

题外话:服务器单机理论最大能连接多少个客户端? 答案是:对于IPV4而言,粗略估计有 个连接。计算机标识一个唯一的socket连接依赖的是唯一四元组-(源ip,源端口,本机ip,本机端口),其中本机的ip和socket初始化的端口是不能变的,因此源ip和源端口都是可变的。那么本…

2021-10-22

摩尔投票

摩尔投票是什么? 摩尔投票用于寻找集合中出现多数的元素,并且出现多数可以定义为大于n//2或者n//3或者是其他自定义的频次(实际上,如果希望求出超过n//3频次的元素,那么是三个元素相互抵消)。摩尔投票的基本流程为: - 投票阶段:投票人之间进行抵消。 - 技术阶段:计算对抗…

leetcode 摩尔投票 算法

2021-09-27

MySQL当中的窗口函数

窗口函数概述 窗口函数(Window Function)针对查询中的每一行数据,基于和它相关的一组数据计算出一个结果。 顾名思义,每一行都会对应一个计算结果,而不是将一组结果聚合计算成一条结果,原始数据有多少行,窗口函数计算之后还是有多少行。 创建数据 聚合函数和窗口函数的区别…

2021-09-25

GROUP BY和HAVING以及WHERE

GROUP BY GROUP BY语句用于对指定的字段进行分类,之后用来与聚合函数(aggregate functions)例如统计(COUNT), 求和(SUM), 求平均(AVG), 求最小最大值(MIN/MAX)联合使用来得到一个或多个列的结果集。 基本的语法为: 一个小…

mysql;group by

2021-08-24

mysql的各种连接生成了什么样的中间数据

数据准备 创建两个表,一个存放用户信息,另一个存放用户订购的信息 往表中插入数据 插入数据之后 插入数据之后: 笛卡尔积 也就是前面三列来自于Customer,后三列来自于Orders。数据行数为Customer的行数乘以Orders行数(63=7*9)。所有的数据都是两个表的…

2021-08-23

MVCC真能解决幻读问题吗?

先说结论,MVCC不能完全解决幻读。只能解决快照读下的幻读,当前读的幻读依然需要借助next-key锁来解决幻读。 什么是幻读? 使用InnoDB作为引擎的MySQL有四种事务隔离级别,分别是: - Read Uncommitted:读未提交 - Read Committed:…

2021-08-17

类和对象的那点事

类和对象 class关键词声明的类其实也是 对象 ,比较特殊的是,它是 的实例对象。因此类也可以和对象一样作为参数进行传递等一系列操作。以下两种方法创造的类是一样的: 进一步验证: 输出为: 进一步说明了,无论是声明的类,还是实例化的对象,还是自带的数据类型。最终都是由type…

2021-05-20

背包问题-完全背包

问题描述 完全背包问题和01背包问题不同的在于,每一个物体的数量可以是无限的,每一个物体的重量为C[i],其产生的价值为 W[i],一共N件物品。背包的容量为V。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 问题求解 和01背包问题的区别在于,0…

2021-05-15

背包问题-01背包问题

01背包问题 问题抽象:有N个物体,每一个重量为c[i],各自的价值为w[i],背包最大容量为V,求背包能放下的物品总和的最大价值 DP思想解决问题 每一个物体都有被放入和不被放入的可能,当前被选择的物体是否被放入所产生的最大价值和后续的物体无关(无后效性),只和前面已经放入的…