外排序
几种排序方法:
https://blog.csdn.net/huyidai/article/details/104507949
补充:
计算机存储器主要有两种:
1.主存储器:简称“内存”或“主存”,有
随机访问存储器
高速缓存
视频储存器
2.外储存器:简称“外存”,有
硬盘(几百G—几百T,10^12B)
磁带(几个P,10^15B)
内存的优缺点:
优点:访问速度快
缺点:造价高,存储容量小,断电丢数据
CPU直接与主存沟通,对存储在内存地址的数据进行访问时,所需要的时间可以看做时一个很小的常数
外存的优缺点:
优点:价格低,信息不易失,便携性
缺点:存取速度慢
一般的内存访问存取时间的单位是纳秒(1纳秒=10^-9秒)
外存一次访问时间则以毫秒(1毫秒=10^-3秒)或秒为数量级
牵扯到外存的计算机程序应当尽量减少外存的访问次数,从而减少程序执行的时间
KB 10^3B(页快)
MB 10^6B(高速缓存)
GB 10^9B(内存,硬盘)
TB 10^12B(磁盘阵列)
PB 10^15B(磁带库)
EB=10^18B,ZB=10^21B,YB=10^24B
Googol是10的100次方
文件的逻辑结构
文件是记录的汇集:一个文件的各个记录按照某种次序排列起来,各记录间就自然的形成了一种线性关系,因而,文件可看成是一种线性结构。
文件的组织和管理
1.逻辑文件:
对高级程序语言的编程人员而言连续的字节构成记录,记录构成逻辑文件
2.物理文件:
成块的分布在整个磁盘中
3.文件管理器:
操作系统或数据库系统的一部分,文件的记录无结构,数据库文件是结构型记录,把逻辑位置映射为磁盘中具体的物理位置
文件组织
文件的逻辑组织有三种形式:
1.顺序结构的定长记录
2.顺序结构的变长记录
3.按关键码存取的记录
常见的物理组织结构
1.顺序结构——顺序文件
2.计算寻址结构——散列文件
3.带索引的结构——带索引文件
倒排是一种特殊的索引
文件上的操作
检索:在文件中寻找满足一定条件的记录
修改:是指对记录中某些数据值进行修改。若对关键码值进行修改,这相当于删除加插入
插入:向文件中增加一个新记录
删除:向文件中删去一个记录
排序:对指定好的数据项,按其值的大小把文件中的记录排成序列,较常用的是按关键码值的排序
C++的标准输入输出流类
istream是通用的输入流和其他输入流的基类,支持输入
ostream是通用的输出流和其他输出流的基类,支持输出
iostream是通用的输入输出流和其他输入输出流的基类,支持输入输出
3个用于文件操作的文件类
ifstream类,从istream类派生,支持从硬盘文件的输入
ofstream类,从ostream类派生,支持从硬盘文件的输出
fstream类,从iostream类派生,支持从硬盘文件的输入和输出
缓冲区和缓冲池
目的:减少磁盘访问的次数
方法:缓冲或缓存
在内存中保留尽可能多的块,可以增加待访问的块已经在内存中的机会
存储在一个缓冲区中的信息经常成为一页往往是一次 I/O的量
缓冲区合起来称为缓冲池
替换缓冲区的策略
新的页块申请缓冲区时,把最近最不可能被再次引用的缓冲区释放来存放新页
先进先出,最不频繁使用,最近最少使用