首页 > 其他分享 >【白话文严蔚敏数据结构】顺序文件

【白话文严蔚敏数据结构】顺序文件

时间:2023-06-29 18:04:56浏览次数:40  
标签:文件 顺序 磁带 批处理 复杂度 严蔚敏 白话文 数据结构 存取

顺序文件就是逻辑顺序与物理顺序一致的文件叫做顺序文件,如果逻辑相邻物理相邻叫做连续文件,如果逻辑相邻物理不相邻叫做串联文件

顺序文件是根据记录的位置(绝对位置和相对位置都可以)进行存取的文件组织方式。顺序文件的优点是连续存取速度快,因此主要用于只进行顺序存取批量修改的情况。在进行直接存取时,如果对响应时间要求不严格,也可以使用顺序文件。

磁带是顺序存取的设备,只有顺序文件才能存到磁带上,磁带适合文件数据大,文件变化小的情况。对磁带文件进行修改的时候,要对文件进行复制一份,然后在复制的时候修改,对磁带文件进行添加的时候,只能添加到文件的末尾,存取磁带第 \(i\) 个记录时候,要先获得它前面的 \(i-1\) 个记录。为了修改更加方便,要求待复制的顺序文件按照关键字有序排列。

磁带文件的批处理有三条磁带,第一条磁带放主文件,第二条磁带放批处理命令,第三条磁带,放新的主文件。主文件按关键字有序,批处理命令按主文件顺序有序,然后将主文件和事务文件归并成一个新的主文件。

分析算法时间复杂度,如果主文件包含 \(n\) 个记录,事务文件包含 \(m\) 个记录。事务文件进行内部排序,最小时间复杂度为 \(O(mlogm)\) ,内部归并的时间复杂度为 \(O(n+m)\) ,总的内部处理时间为 \(O(n+mlogm)\) 。

对于一批需要进行处理的文件,可以将它们存储在磁带上,然后按照磁带上的顺序一个一个进行处理。更新不增加磁带长度时候,可以不用复制一条新的磁带,直接修改原来的主文件即可。

标签:文件,顺序,磁带,批处理,复杂度,严蔚敏,白话文,数据结构,存取
From: https://www.cnblogs.com/nerd-/p/17514845.html

相关文章

  • [数据结构]笛卡尔树、ST表、带权并查集
    Cartesiantree(笛卡尔树)1.概念比如拿最小的当根建树,中序遍历是原数组2.性质区间最小值(RMQ),LCA的值,比如上图4和6的LCA是2,表示我们4,6,2这个区间里面的最小值是2找y左边第一个<=y的数就是y往上看第一个向左拐的数3.构造(增量法)对每个前缀考虑我们发现只有右链是......
  • Java 中内置的数据结构
    在计算机领域有八种基本的数据结构,分别为:数组、链表、栈、队列、散列表、树、堆、图,在Java中通过借助这些数据结构的特性封装了一些常用的数据结构类,了解这些数据结构的特性和差异可以帮助我们在编写程序代码的过程中更好的选择合理的数据结构来降低相关算法的空间复杂度和时......
  • 【HarmonyOS】一文教你快速解决低代码连接器返参数据结构嵌套错误问题
    ​【关键字】低代码平台、连接器、返参数据结构嵌套 【写在前面】关于低代码平台中的连接器如何使用,请参考以下内容:https://blog.51cto.com/u_15687416/6414269下文将会介绍连接器在实际使用中遇到的一个常见的问题。 【问题描述】1、云侧接口定义首先来一起看一下云......
  • Lua 中最重要的数据结构:表(Table)
    楔子本次来介绍一下Lua中的表(Table),表是Lua语言中最主要(事实上也是唯一)的数据结构,表既可以当做数组来用,也可以当成哈希表来用。这个和Python中的字典非常类似,比如我们之前用查看变量类型的math.type,本质上就是以字符串"type"来检索表math。而在Python中,比如调用math.......
  • 数据结构(第三章)
    数据结构(第三章)栈定义:只允许在一端进行插入或删除操作的线性表特点:后进先出顺序栈的表示与实现顺序栈:利用顺序存储结构实现栈,即利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设top指示栈顶元素在顺序栈中的位置。栈的顺序存储类型#defineMaxsize5......
  • 【数据结构】堆
    前言......
  • [数据结构]Binary Indexed Trees(树状数组)
    BinaryIndexedTrees(树状数组)1.lowbitlowbit(x)是x的二进制表达式中最低位的1所对应的值。比如,6的二进制是110,所以lowbit(6)=2。lowbit(x)=x&(-x)2.定义,查询,修改(eg1)\(a1,a2,...,an\)能在BZ的时间复杂度下完成:单点加,\(ai+=d\)查询前缀和\(\sum_{i=1}^{x}ai......
  • [数据结构]scanning line(扫描线)
    scanningline(扫描线)1.1扫描线的思想以及在几何问题上的应用(eg1,3)二维数点平面上有n个点(xi,yi)。回答q个询问,每个询问给定一个矩形[X1,X2]×[Y1,Y2],询问矩形里面有多少个点。因为有1e9的范围,我们离散化一下,我们只关心顺序,不关心具体是多少这里相当于只需要把原来的点的......
  • [数据结构]Segment tree(线段树)
    Segmenttree(线段树)1.线段树的结构和思想线段树基本结构:简单操作:1.单点修改:时间复杂度O(logn),因为线段树高是O(logn)的,然后会修改这个点到根的路径上的点权,所以是O(logn)的。2.区间查询(比如:最小值)实现:#include<bits/stdc++.h>usingnamespacestd;typedeflong......
  • 3.数据结构与算法复习--线性表
    线性表的定义和特点线性表是具有相同特性的数据元素的一个有限序列(a1,a2,..ai-1,ai,ai+1,...an)a1:线性起点ai-1为ai的直接前驱,ai+1为ai的直接后驱an为线性终点,当n=0时称为空表线性表同一线性表中的元素必定具有相同特性,数据元素间的关系时线性关系线性表的逻辑特征是:......