算法第四版 第二章 归并排序 与 快速排序

算法第四版 第二章 归并排序 与 快速排序

这一节的算法都基于归并, 所以会给算法的模板新增加一个操作. 归并就是将两个有序的数组归并成一个更大的有序数组. 归并和之前的快速排序有一个区别是, 我们开始使用递归, 而且给递归函数传递的都是索引, 这样比较清晰. 实现归并方法 自顶向下的归并排序方法 自底向上的归并排序 快速排序 快速排序的改进

算法第四版 第二章 初级排序

算法第四版 第二章 初级排序

排序算法是解决很多问题的第一步, 而且排序算法发展时间长, 都非常经典, 优雅和高效. 初级排序算法 选择排序 插入排序 希尔排序 初级排序算法 算法这里很好, 没有上来就讲排序, 而是将排序算法类抽象出了一个共同的模板. 将排序抽象为排一个数组中元素的序, 每个元素都有一个主键(我个人理解就是据以

算法第四版 第一章 动态连通性算法

算法第四版 第一章 动态连通性算法

这一部分是结合Coursera上边塞奇威克本人的视频来看的, 讲的确实不错. 定量测量程序的运行时间 union-find 动态连通性算法 动态连通性算法 类似于集合的实现 动态连通性算法 树结构实现 动态连通性算法 加权树实现 动态连通性算法 加权+路径压缩 定量测量程序的运行时间 有一个三嵌套循

算法第四版 第一章 背包 队列 栈

算法第四版 第一章 背包 队列 栈

为了继续提高自己的水平, 是时候开始接触算法了. 看了很多算法的推荐, 这本算法第四版是很好的入门教材. 在Coursera上找到了这门课程的第一部分和第二部分, 还有书的配套网站 材料备

CSAPP 第十二章 多核心并发

CSAPP 第十二章 多核心并发

之前的加锁并发其实并没有真正的提高效率, 因为还是就一个共享变量来操作, 本质上还是执行完了全部计算. 实际上现代处理器具有多个核心, 可以同时执行与核心数量相等的线程. 现在来看一下真正利用多个线程并行处理的程序 提高并行性的代码 并行程序的性能评价 线程安全 - 线程不安全的函数 线程安全 -

CSAPP 第十二章 多线程

CSAPP 第十二章 多线程

线程 线程包的接口 多线程echo server 多线程程序中的共享变量 信号量 - 线程同步的理论 信号量 - 接口 信号量 - 二元信号量 信号量 - 生产者/消费者模型 信号量 - 读者/写者模型 线程实际使用 - 预线程服务器 线程 线程有点像上边两个方

CSAPP 第十二章 多进程与I/O多路复用

CSAPP 第十二章 多进程与I/O多路复用

终于站在CSAPP最后一章的门前了, 一年以前买这本书的时候还看不进去, 现在竟然已经全部看完而且看懂了. 内心还是有点小小的激动, 这种力量正不断涌现的感觉... 并发 多进程程序 I/O多路复用 - select 函数 I/O多路复用 - 事件驱动的并发 I/O多路复用 - 优缺点 并发 在第八

CSAPP 第十一章 Web服务器的实现

CSAPP 第十一章 Web服务器的实现

这一节来编写一个简单的Web服务器, 一切都是从一个简单的原型开始的. 套接字读写的客户端与服务端 微型Web服务器 - 主程序 doit 函数 clienterror 函数 read_requesthdrs 函数 parse_uri 函数 server_static 函数 函数 serve_dyn

CSAPP 第十一章 套接字接口函数

CSAPP 第十一章 套接字接口函数

套接字接口函数一般都是由系统实现, 所以必须掌握, 应用程序全部要使用系统调用来进行套接字操作. 通用 - socket 客户端 - connect 服务端 - bind 服务端 - listen 服务端 - accept getaddrinfo getnameinfo open_clientfd

CSAPP 第十一章 网络编程基础概念

CSAPP 第十一章 网络编程基础概念

网络编程要依赖于一直依赖学习的几乎所有系统概念, 包括进程, 信号, 处理字节, 内存映射和动态内存分配. 除此之外, 就是一些关于网络的概念, 包括最基础的客户端-服务器模型, 因特网的基础概念. CS模型 Internet - 抽象模型 Internet - IP地址 Internet - 域名