08 2022 档案
摘要:排序算法 学了几年算法了,回头看几种排序算法居然不会。。。。 偷了菜鸟驿站的图 不会很认真的分析时间复杂度、空间复杂度,重在实现。 冒泡排序 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 每一轮都会找到一个最大的值,所以可以保证算法正确性。 时间复杂度是稳定的不会有改变 void
阅读全文
摘要:allocator类 群友之前问了一个问题,C++除了new和malloc还有什么分配内存的方法,当时我在想mmap()、brk()这些系统调用,后来突然想到STL里面有一个allocator类似乎也是做空间分配的。现在来学一学。 new/delete的局限性 抽象的描述new的行为:将内存分配和对
阅读全文
摘要:DNS DNS是什么? DNS是一个域名系统,它的作用是进行主机名和IP地址的转换。一方面,它是一个分层的DNS服务器实现的分布式数据库,另一方面,它是一个使得主机能够查询分布式数据库的应用层协议。 一个具体实例,我们的客户端向Web服务器www.scuec.edu发送一个http请求,那么我们必须
阅读全文
摘要:C++多线程笔记 关于什么是线程可以看看小林的这篇文章 这篇笔记主要是在整理C++thread库的使用,对于较为高级的比如写一个线程池,在我之前的文章中有写过。 OK,让我们看看C++中的多线程吧。 1.1 创建一个线程 C++提供了std::thread来创建一个线程。使用时需要包含头文件,该头文
阅读全文
摘要:设计模式(7)原型模式 ##情景 原型模式 如何复制一个对象?对于一个类而言,它存在一些私有的成员,这些成员无法被访问,那么就需要提供一个接口来实现对象复制。 解决方案 原型模式将克隆过程委派给被克隆的实际对象。 模式为所有支持克隆的对象声明了一个通用接口, 该接口让你能够克隆对象, 同时又无需将代
阅读全文
摘要:第一次学TCP/UDP的记录 现在来看学的真有点浅了,所以今天再来看看TCP。当然不排除以后还会写TCP/UDP(3),TCP/UDP(4),还有以前很想学的QUIC。 还是三次握手和四次挥手 MTU和MSS MTU:一个网络包的最大长度。 MSS:出去IP和TCP头部之后,一个网络包容纳的TCP数
阅读全文
摘要:字典树 怎么存储一篇文章里面出现的所有的单词,需要将所有单词存下来吗?字典树给出的答案是no。 朴素的字典树 字典树,英文名 trie。顾名思义,就是一个像字典一样的树。 看看OIwiki的这张图: 对于一个单词比如caab,就表示从1->4->8->13这样一条路径。我们可以使用13来表示这个单词
阅读全文
摘要:学一学mysql的事务 事务是什么 事务是一组数据库操作的集合,比如我们建了张员工表,然后我们会插入、查询员工信息,我们保证这一组操作要全部成功要么就全部失败。 CREATE TABLE test( id int(5)) engine=innodb; begin; # 开始事务 insert int
阅读全文
摘要:学学MySql中的隔离性 之前写了一篇事务的笔记没保存,吐了。 为什么需要隔离性? 数据库上有多个事务同时执行的时候,就可能出现脏读、不可重复读、幻读的问题。 脏读:当前事务A可以读到其他事务B未提交的数据,也就是脏读 不可重复读:在事务A中先后两次读取同一个数据,两次结果不相同,这种就是不可重复读
阅读全文
摘要:桥接模式 情景 桥接模式的目的是将一个大类或者一系列类拆分为抽象和实现两个层次。 桥接模式 一个Shape类,可以扩展两个形状 Circle 和 Square 。希望每一个形状还有两颜色,进而Shape会有四个子类。这样的话我们需要添加的类会越变越多。比如说我们再加一个三角形的子类就需要加上两个子类
阅读全文
摘要:适配器模式 情景 将一个类的接口转换成客户希望的另一个接口。Adapter 模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作。 在这个网站里有这么一个例子 设计一个股票市场检测程序,它下载大量的XML格式的股票数据。在开发过程中,整合一个第三方智能分析函数库,但是这个库只兼容JSON格
阅读全文