要么改变世界,要么适应世界
该分类下的文章

当我们要对100亿的数据排序,内存无法一次性装下数据时,怎么办?(附代码)

2024-03-10 09:31:19
51
教程

估计不少人会被问到这个问题,这个其实是外排序问题,不同于内排序全程都可以在内存中进行,外排序一般数据量巨大,当然也是有解决方案的,解决方案不外乎几种: 1. 分块读取,然后插入数据库中,让数据库帮我们排序,我们分块查询数据库,然后分块读取保存进文件(这种方法简单直接,技术难度没那么大,但是对数据库服务器要求比较高) 2. 分治法,将原始大文件切割成小文件,使得小文件内的数据能够一次性加载进内存,小文件内的数据先排序,然后每次从这些小文件中读取若干数据出来,使用归并排序合并成大的文件。 3. 如果这些数据的范围都不大,则有很多数据是重复的,我们使用计数排序即可。 下面演示一下方法二的整个实操过程。 ...

CS:APP-Proxy Lab(CS:APP系列实验完结篇)

2023-12-10 17:20:46
141
教程

本实验要求我们实现一个代理服务器,充当一个在用户和目标服务器之间的桥梁角色,深入了解各个主机之间建立连接的流程。话不多说,打开电脑,带上键盘,开启实验! ...

CS:APP-Malloc Lab

2023-12-01 10:44:29
154
教程

本实验要求我们实现一个简单的动态存储分配器,主要完成`malloc`、`free`和`realloc`的功能,实现过程要同时兼顾内存利用率和吞吐量。 话不多说,打开电脑,带上键盘,开启实验! ...

CS:APP-Shell Lab

2023-11-14 09:40:12
135
教程

总体要求:实现一个小小的`shell`程序,涉及进程调度,信号处理,并发处理的知识,需要掌握教材第8章。 话不多说,打开电脑,带上键盘,开启实验! ...

CS:APP-Cache Lab

2023-10-03 15:16:06
171
教程

实验包括两个小实验,第一个是仿真Cache,第二个是针对不同情况下,用不同的方式实现矩阵转置。 话不多说,打开电脑,带上键盘,开启实验! ...

  • 1
  • 2
  • 3