• 文件主文件学习 严蔚敏讲数据结构笔记27


    每日一贴,今天的内容关键字为文件主文件

        次序文件的插入、删除和更新操纵在少数情况下都采用批处理方法。此时,为处理方便,平日将次序文件做成有序文件,称作“主文件”,同时将所有的操纵做成一个“事务文件”(进过排序也成为有序文件),所谓“批处理”,就是将这两个文件“合”为一个新的主文件。具体操纵相当于“归并两个有序表”。

         

        但有两点不同:

        (1)      对于事务文件中的每个操纵首先要判别其“合法性”;

        (2)      事务文件中可能存在多个操纵是对主文件中同一个记载进行的。

        批处理的时光分析:

        假设主文件中含有h个记载,事物文件中含有m个记载,则对事务文件中含有m个记载,则对事务文件忘性排序的时光复杂度为O(mlogm);外部归并的时光复杂度为O(m+n),则总的外部处理时光为O(mlogm+n);

        假设对外存进行依次读、取为s个记载,则整个批处理过程当中读、写外存的次数为

        (其中s为对外存进行一次读、取的记载数)

         

        12.3索引文件

        一、结构特色:

        1.索引文件由“主文件”和多级“索引”组成

        2.索引中每个记载由“关键字”和“指针”组成。

        3.平日,索引文件中的主文件是无序文件,索引是(按关键字有序)的有序文件。

        4.“索引”是在输入数据建立文件时自动生成。初建时的“静态索引”为无序文件,经过排序后称为有序文件。

         

        二、操纵特色:

        1.检索方法:直接存取和按关键字存取,“按关键字检索”将两步进行:先查找索引,然后根据索引中指针所指索取记载。

        2.插入记载时,“记载”插入在主文件的末端,而响应的“索引项”必须插入在索引的适合位置上。因此,最后在建索引表时留有必定“空位”。

        3.删除记载时,仅需删除索引表中响应的索引项即可。

        4.更新记载时,应将更新后的记载插入在主文件的末端,同时修改响应的索引项。

         

        1.      多级静态索引

        此时的索引文件结构

        对主文件中每个记载建立一个索引项:

        从索引表建立索引查找表,其中每个索引项为:

        按关键字进行件检索时,从第三查找表点开始,至多访问外存5次。

         

        每日一道理
    古人云:“海纳百川,有容乃大。”人世间,不可能没有矛盾和争吵,我们要以磊落的胸怀和宽容的微笑去面对它 。哈伯德也曾说过:“宽恕和受宽恕的难以言喻的快乐,是连神明都会为之羡慕的极大乐事。”让我们从宽容中享受快乐,从谅解中体会幸福吧!

        2.      动态索引

        索引表采用查找树或哈希表

        长处:

        1)  不须要建立多级索引

        2)  初建索引不须要进行排序;

        3)  插入或删除时,修改索引方便

        用查找树表做索引时,查找索引所需访问外存次数的最大值恰为查找树的深度。

        可以做索引的树表有:二叉排序树、B-树和键树

        稠密索引长处是,可以实现“预叉找”缺陷是,索引表占用的存储空间大。

         

        12.4 索引次序文件

        结构特色:

        主文件按主关键字有序,对一组记载建立一个索引项(建立非稠密索引)。

        有两种典范的索引次序文件:

        一、ISAM文件

        ISAM(IndexSequentialAccessMethod)(索引次序存取方法)是一种专为磁盘存取设计的文件组织方法。

        1.      文件的组织方法

        主文件按柱面会合寄存,同时建立三级索引:磁道索引、柱面索引和主索引。

        磁道索引结构

        2.      操纵的特色

        检索:可有两种方法:

        次序存取-依关键字最小至最大次序存取。

        按关键字存取-从主索引开始,到柱面索引,到磁道索引,最后得到记载,先后访问四次外存。

        插入:将记载插入在某个磁道的适合位置上;将该磁道上关键字最大的记载移出到本柱面的溢出区中;

        修改本磁道的索引项(包含基本索引项和溢出索引项)。

        删除:

        在被删记载以后存储位置上作“删除标记”。

         

        3.      文件重组

        在经过多次的插入和删除操纵之后,大批的记载进入文件的“溢出区”,而“基本存储区”中出现了很多已被删去的记载空间,此时的文件结构很不合理。因此,对ISAM文件,须要周期地进行重组。

         

        4.柱面索引的位置

        ISAM文件占有多个柱面,其柱面索引本身占有一个柱面,为使“磁头”的平均移动距离最小,柱面索引应该在数据文件所占全体柱面的旁边位置。

         

    文章结束给大家分享下程序员的一些笑话语录: 祝大家在以后的日子里. 男生象Oracle般健壮; 女生象win7般漂亮; 桃花运象IE中毒般频繁; 钱包如Gmail容量般壮大, 升职速度赶上微软打补丁 , 追女朋友像木马一样猖獗, 生活像重装电脑后一样幸福, 写程序敲代码和聊天一样有**。

    --------------------------------- 原创文章 By
    文件和主文件
    ---------------------------------

  • 相关阅读:
    如何解决软键盘弹出引起的各种不适
    防反编译、混淆文件proguard.cfg与proguard-project.txt详解
    Android.mk添加第三方jar包
    Android Proguard.flags LOCAL_PROGUARD_FLAGS
    【Mood 21】要不要重复造轮子
    彻底解决INSTALL_FAILED_UPDATE_INCOMPATIBLE的安装错误
    【起航计划 037】2015 起航计划 Android APIDemo的魔鬼步伐 36 App->Service->Remote Service Binding AIDL实现不同进程间调用服务接口 kill 进程
    【起航计划ObjC 003】印第安老斑鸠ObjC的幻想 ---- ObjC经典问题
    缩短移动开发周期的ApiCloud
    LeAndroid招聘汇总
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3109042.html
Copyright © 2020-2023  润新知