第8章怎样研究算法排序算法示例练习题答案解析

合集下载

排序算法考研真题及答案

排序算法考研真题及答案

排序算法考研真题及答案排序算法是计算机科学中的一个基本问题,它涉及到将一组元素按照特定的顺序重新排列。

在考研计算机科学专业中,排序算法是一个重要的考察点。

以下是一些常见的排序算法考研真题及答案。

真题1:描述快速排序算法的基本思想,并给出其时间复杂度。

答案:快速排序算法是一种分治算法,其基本思想是:1. 选择一个元素作为“基准”(pivot)。

2. 重新排列数组,使得所有比基准小的元素都在基准的左边,所有比基准大的元素都在基准的右边。

3. 递归地将这个过程应用于基准左边和右边的子数组。

快速排序的平均时间复杂度是O(n log n),但在最坏情况下(例如,数组已经排序或所有元素相等)时间复杂度会退化到O(n^2)。

真题2:解释归并排序算法的工作原理,并说明其稳定性。

答案:归并排序是一种分治算法,其工作原理如下:1. 将数组分成两半,直到每个子数组只有一个元素。

2. 将这些只有一个元素的子数组合并,形成有序的子数组。

3. 重复这个过程,直到所有元素合并成一个有序数组。

归并排序是稳定的排序算法,因为它保证了相等元素的相对顺序在排序后不会改变。

真题3:插入排序算法在最好情况下的时间复杂度是多少?为什么?答案:插入排序算法在最好情况下的时间复杂度是O(n)。

这是因为当数组已经完全有序时,插入排序只需要进行n-1次比较,而不需要进行任何交换操作。

真题4:堆排序算法的工作原理是什么?请简要描述。

答案:堆排序算法的工作原理基于二叉堆数据结构:1. 将待排序数组构建成一个最大堆(或最小堆)。

2. 将堆顶元素(最大或最小元素)与最后一个元素交换,然后缩小堆的范围。

3. 重新调整堆,以保持堆的性质。

4. 重复步骤2和3,直到堆的大小减少到1。

真题5:为什么说冒泡排序算法在最坏情况下的时间复杂度是O(n^2)?答案:冒泡排序算法在最坏情况下的时间复杂度是O(n^2),因为当数组完全逆序时,每次冒泡都需要将最大的元素移动到数组的末尾,这需要n次比较和交换。

《数据结构(C语言版 第2版)》(严蔚敏 著)第八章练习题答案

《数据结构(C语言版 第2版)》(严蔚敏 著)第八章练习题答案

《数据结构(C语言版第2版)》(严蔚敏著)第八章练习题答案第8章排序1.选择题(1)从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的方法,这种排序方法称为()。

A.归并排序B.冒泡排序C.插入排序D.选择排序答案:C(2)从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为()。

A.归并排序B.冒泡排序C.插入排序D.选择排序答案:D(3)对n个不同的关键字由小到大进行冒泡排序,在下列()情况下比较的次数最多。

A.从小到大排列好的B.从大到小排列好的C.元素无序D.元素基本有序答案:B解释:对关键字进行冒泡排序,关键字逆序时比较次数最多。

(4)对n个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数最多为()。

A.n+1B.n C.n-1D.n(n-1)/2答案:D解释:比较次数最多时,第一次比较n-1次,第二次比较n-2次……最后一次比较1次,即(n-1)+(n-2)+…+1=n(n-1)/2。

(5)快速排序在下列()情况下最易发挥其长处。

A.被排序的数据中含有多个相同排序码B.被排序的数据已基本有序C.被排序的数据完全无序D.被排序的数据中的最大值和最小值相差悬殊答案:C解释:B选项是快速排序的最坏情况。

(6)对n个关键字作快速排序,在最坏情况下,算法的时间复杂度是()。

A.O(n)B.O(n2)C.O(nlog2n)D.O(n3)答案:B解释:快速排序的平均时间复杂度为O(nlog2n),但在最坏情况下,即关键字基本排好序的情况下,时间复杂度为O(n2)。

(7)若一组记录的排序码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()。

A.38,40,46,56,79,84B.40,38,46,79,56,84C.40,38,46,56,79,84D.40,38,46,84,56,79答案:C(8)下列关键字序列中,()是堆。

数据结构和算法习题及答案解析

数据结构和算法习题及答案解析

第1章绪论习题1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。

2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。

3.简述逻辑结构的四种基本关系并画出它们的关系图。

4.存储结构由哪两种基本的存储方法实现?5.选择题(1)在数据结构中,从逻辑上可以把数据结构分成()。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.内部结构和外部结构(2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的()。

A.存储结构 B.存储实现C.逻辑结构 D.运算实现(3)通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着()。

A.数据具有同一特点B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致C.每个数据元素都一样D.数据元素所包含的数据项的个数要相等(4)以下说法正确的是()。

A.数据元素是数据的最小单位B.数据项是数据的基本单位C.数据结构是带有结构的各数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构(5)以下与数据的存储结构无关的术语是()。

A.顺序队列 B. 链表 C.有序表 D. 链栈(6)以下数据结构中,()是非线性数据结构A.树 B.字符串 C.队 D.栈6.试分析下面各程序段的时间复杂度。

(1)x=90; y=100;while(y>0)if(x>100){x=x-10;y--;}else x++;(2)for (i=0; i<n; i++)for (j=0; j<m; j++)a[i][j]=0;(3)s=0;for i=0; i<n; i++)for(j=0; j<n; j++)s+=B[i][j];sum=s;(4)i=1;while(i<=n)i=i*3;(5)x=0;for(i=1; i<n; i++)for (j=1; j<=n-i; j++)x++;(6)x=n; //n>1y=0;while(x≥(y+1)* (y+1))y++;(1)O(1)(2)O(m*n)(3)O(n2)(4)O(log3n)(5)因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O(n2)(6)O(n)第2章线性表1.选择题(1)一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是()。

《算法分析与设计》(李春葆版)课后选择题答案与解析

《算法分析与设计》(李春葆版)课后选择题答案与解析

《算法及其分析》课后选择题答案及详解第1 章——概论1.下列关于算法的说法中正确的有()。

Ⅰ.求解某一类问题的算法是唯一的Ⅱ.算法必须在有限步操作之后停止Ⅲ.算法的每一步操作必须是明确的,不能有歧义或含义模糊Ⅳ.算法执行后一定产生确定的结果A.1个B.2个C.3个D.4个2.T(n)表示当输入规模为n时的算法效率,以下算法效率最优的是()。

A.T(n)=T(n-1)+1,T(1)=1B.T(n)=2nC.T(n)= T(n/2)+1,T(1)=1D.T(n)=3nlog2n答案解析:1.答:由于算法具有有穷性、确定性和输出性,因而Ⅱ、Ⅲ、Ⅳ正确,而解决某一类问题的算法不一定是唯一的。

答案为C。

2.答:选项A的时间复杂度为O(n)。

选项B的时间复杂度为O(n)。

选项C 的时间复杂度为O(log2n)。

选项D的时间复杂度为O(nlog2n)。

答案为C。

第3 章─分治法1.分治法的设计思想是将一个难以直接解决的大问题分割成规模较小的子问题,分别解决子问题,最后将子问题的解组合起来形成原问题的解。

这要求原问题和子问题()。

A.问题规模相同,问题性质相同B.问题规模相同,问题性质不同C.问题规模不同,问题性质相同D.问题规模不同,问题性质不同2.在寻找n个元素中第k小元素问题中,如快速排序算法思想,运用分治算法对n个元素进行划分,如何选择划分基准?下面()答案解释最合理。

A.随机选择一个元素作为划分基准B.取子序列的第一个元素作为划分基准C.用中位数的中位数方法寻找划分基准D.以上皆可行。

但不同方法,算法复杂度上界可能不同3.对于下列二分查找算法,以下正确的是()。

A.intbinarySearch(inta[],intn,int x){intlow=0,high=n-1;while(low<=high){intmid=(low+high)/2;if(x==a[mid])returnmid;if(x>a[mid])low=mid;elsehigh=mid;}return –1;}B.intbinarySearch(inta[],intn,int x) { intlow=0,high=n-1;while(low+1!=high){intmid=(low+high)/2;if(x>=a[mid])low=mid;elsehigh=mid;}if(x==a[low])returnlow;elsereturn –1;}C.intbinarySearch(inta[],intn,intx) { intlow=0,high=n-1;while(low<high-1){intmid=(low+high)/2;if(x<a[mid])high=mid;elselow=mid;}if(x==a[low])returnlow;elsereturn –1;}D.intbinarySearch(inta[],intn,int x) {if(n>0&&x>=a[0]){intlow= 0,high=n-1;while(low<high){intmid=(low+high+1)/2;if(x<a[mid])high=mid-1;elselow=mid;}if(x==a[low])returnlow;}return –1;}答案解析:1.答:C。

(完整版)数据结构与算法第8章答案

(完整版)数据结构与算法第8章答案

第8 章排序技术课后习题讲解1. 填空题⑴排序的主要目的是为了以后对已排序的数据元素进行()。

【解答】查找【分析】对已排序的记录序列进行查找通常能提高查找效率。

⑵对n个元素进行起泡排序,在()情况下比较的次数最少,其比较次数为()。

在()情况下比较次数最多,其比较次数为()。

【解答】正序,n-1,反序,n(n-1)/2⑶对一组记录(54, 38, 96, 23, 15, 72, 60, 45, 83)进行直接插入排序,当把第7个记录60插入到有序表时,为寻找插入位置需比较()次。

【解答】3【分析】当把第7个记录60插入到有序表时,该有序表中有2个记录大于60。

⑷对一组记录(54, 38, 96, 23, 15, 72, 60, 45, 83)进行快速排序,在递归调用中使用的栈所能达到的最大深度为()。

【解答】3⑸对n个待排序记录序列进行快速排序,所需要的最好时间是(),最坏时间是()。

【解答】O(nlog2n),O(n2)⑹利用简单选择排序对n个记录进行排序,最坏情况下,记录交换的次数为()。

【解答】n-1⑺如果要将序列(50,16,23,68,94,70,73)建成堆,只需把16与()交换。

【解答】50⑻对于键值序列(12,13,11,18,60,15,7,18,25,100),用筛选法建堆,必须从键值为()的结点开始。

【解答】60【分析】60是该键值序列对应的完全二叉树中最后一个分支结点。

2. 选择题⑴下述排序方法中,比较次数与待排序记录的初始状态无关的是()。

A插入排序和快速排序B归并排序和快速排序C选择排序和归并排序D插入排序和归并排序【解答】C【分析】选择排序在最好、最坏、平均情况下的时间性能均为O(n2),归并排序在最好、最坏、平均情况下的时间性能均为O(nlog2n)。

⑵下列序列中,()是执行第一趟快速排序的结果。

A [da,ax,eb,de,bb] ff [ha,gc]B [cd,eb,ax,da] ff [ha,gc,bb]C [gc,ax,eb,cd,bb] ff [da,ha]D [ax,bb,cd,da] ff [eb,gc,ha]【解答】A【分析】此题需要按字典序比较,前半区间中的所有元素都应小于ff,后半区间中的所有元素都应大于ff。

战德臣《大学计算机-计算思维导论》大学计算机第8讲-怎样研究算法-排序算法研究示例

战德臣《大学计算机-计算思维导论》大学计算机第8讲-怎样研究算法-排序算法研究示例

排序: 数值序
哪些是关键词呢?
查找 文档
关键词查询
查找: 反复进行 关键词索引表---倒排索引
对所有文 档建立
排序: 字母序
怎样按照关键词找到相应的文档呢?
怎样快速找到关键词呢?
基本排序算法I --内排序之插入法排序
战德臣
哈尔滨工业大学 教授.博士生导师 教育部大学计算机课程教学指导委员会委员
OK Z hanDC
51
80
i=5
A7 A7 A7
12
49
78
78
33
66
50
51
80
12
49
49
78
33
66
50
51
80
12
19
49
78
33
66
50
51
80
i=5 i=5 i=5

A7
12
19
33
49
50
51
66
78
80
i=9
插入排序:递增排序示意. 其中三角形左侧为已排好序的元素, 其右侧为未排序的元素, 实心三角形本身为待插入的元素. 图中示意了为待排序元素19腾挪空间的过程, 由箭头 示意. 空心三角形表示新插入的元素
Harbin Institute of Technology
基本排序算法II--内排序之简单选择法排序 (1)简单选择排序的思想?
简单选择法排序
战德臣 教授
首先在所有数组元素中找出最小值的元素,放在A[1]中; 接着在不包含A[1]的余下的数组元素中再找出最小值的元素, 放置在A[2]中; 如此下去,一直到最后一个元素。 这一排序策略被称为简单选择排序。

算法导论 第八章答案

算法导论 第八章答案

{ if(m >n)
cout<<"区间输入不对"<<endl; else { if(n <0) else if(m <=0&& n <= k) else if(n > k && m >0) else if(n > k && m <=0) else
cout<<"个数为"<<0<<endl; cout<<"个数为"<<c[n]<<endl; cout<<"个数为"<<c[k] - c[m -1]<<endl;
cout<<"个数为"<<c[k]<<endl; cout<<"个数为"<<c[n] - c[m -1]<<endl;
}}
return 0;
}
void counting_sort(int*&a, int length, int k, int*&b, int*&c)
{ for(int i =0; i < k +1; i++)
const int k =2504; int* c =new int[k +1];
counting_sort(a, LEN, k, b, c); //这里需要注释掉
//for(int i = 0; i < LEN; i++)
// cout<<b[i]<<endl;

数据结构第八章习题答案

数据结构第八章习题答案

第八章查找1.若为大小均为n的有序的顺序表和无序的顺序表分别进行顺序查找,试在下列三种情况下分别讨论两者在等概率时的平均查找长度是否相同?(1)查找不成功,即表中没有关键字等于给定值K的记录;(2)查找成功,且表中只有一个关键字等于给定值K的记录;(3)查找成功,且表中有若干个关键字等于给定值K的记录,一次查找要求找出所有记录。

此时平均查找长度应考虑找到所有记录时所用的比较次数。

【解答】在已知的有序表进行顺序排序,可对顺序查找算法进行改进。

(1)不相同;(2)相同;(3)不相同。

2.画出对长度为10的有序表进行折半查找的判定树,并求其等概率时查找成功的平均查找长度。

【解答】等概率时查找成功的平均查找长度=(1+2*2+3*4+4*3)/10=2.93.已知下列长度为7的表(50, 40, 30, 60, 55, 58, 59)。

(1)试按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出插入完成后的二叉排序树,求其在等概率情况下查找成功的平均查找长度。

(2)按表中元素顺序构造一棵平衡二叉排序树,并求其在等概率情况下查找成功的平均查找长度。

【解答】(1)等概率情况下查找成功的平均查找长度=(1+2*2+3*2+4+5)/7=20/7(2)等概率情况下查找成功的平均查找长度=(1+2*2+3*4)/7=17/74.在地址空间为0~16的散列区中,自己构造哈希函数,对以下关键字序列构造哈希表:(Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec)(1)用线性探测开放定址法处理冲突;(2)用链地址法处理冲突。

并分别求这两个哈希表在等概率情况下查找成功和不成功的平均查找长度。

【解答】略。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第8章怎样研究算法排序算法示例练习题答案解析.第8章怎样研究算法:排序算法示例1、排序算法是最基本的算法,很多复杂算法都是以排序为基础进行构造的。

关于排序算法,下列说法不正确的是_____。

(A)大规模数据集合中查找有无某些元素的问题,有序数据集合比无序数据集合的查找要快得多;(B)大规模数据集合中按元素分组进行计算的问题,有序数据集合比无序数据集合的计算要快得多;(C)对无序数据集合,两个算法 X和Y:X采用无序数据处理,Y采用先将无序数据排序成有序数据,然后进行处理;则对前述(A)、(B)两类问题,Y算法一定比X算法慢;(D)上述说法有不正确的;答案:C解释:本题考核排序算法的研究有序数据集合有利在大规模数据集合中查找,算法进行和判断,要比无序数据集合查找的快,算法尽管需要排序后再处理,选项,Y对于(C)Y但排序处理后的数据查找更加快捷,因此可能 X算法更快。

算法比具体内容请参考排序算法以及第八章课件。

、下列三个算法是关于“大规模数据集合中查2“学生”针对一个找有无某些元素”问题的算法:数据表,如下示意,找出“成绩”为某一分数的所有学生。

学生学12030095071203001李94 03 宁1203001李88 01 鹏85徐120300106 月.1203001王79 02 刚1203001江77091203007310120300690412030066054412030008A1】【算法Start of algorithm A1 条记录开始,直到其最Step 从数据表的第11.后一条记录为止,读取每一条记录,做Step 2。

对每一条记录,判断成绩是否等于给定Step 2.则输出;如果不是,则不输出。

如果是,的分数:End of algorithm A1A2【算法】Start of algorithm A2 条记录开始,直到其最1从数据表的第1. Step后一条记录为止,读取每一条记录,做Step 2和Step 3。

Step 2. 对每一条记录,判断成绩是否等于给定的分数:如果等于,则输出;如果不等于,则不输出。

Step 3. 判断该条记录的成绩是否小于给定的分数:如果不是,则继续;否则,退出循环,算法结束。

End of algorithm A2【算法A3】Start of algorithm A3Step 1. 假设数据表的最大记录数是n,待查询区间的起始记录位置Start为1,终止记录位置Finish为n;Step 2. 计算中间记录位置I =(Start+Finish)/2,读取第I条记录。

Step 3. 判断第I条记录的成绩与给定查找分数:(3.1)如果是小于关系,则调整Finish = I-1;如果Start >Finish则结束,否则继续做Step 2;(3.2)如果是大于关系,则调整Start = I+1;如果Start>Finish 则结束,否则继续做Step 2;周围I如果是等于关系,则输出,继续读取(3.3).所有的成绩与给定查找条件相等的记录并输出,直到所有相等记录查询输出完毕则算法结束。

End of algorithm A3针对上述三个算法,回答下列问题:(1)关于算法A1, A2, A3的快慢问题,下列说法正确的是_____。

(A)算法A1快于算法A2,算法A2快于算法A3;(B)算法A2快于算法A1,算法A2快于算法A3;(C)算法A3快于算法A2,算法A2快于算法A1;(D)算法A1快于算法A3,算法A3快于算法A2;(E)上述都不正确。

答案:C解释:本题考核排序算法的研究从大到小。

首先,数据是有序排列的,算法A1依次搜索,穷举。

算法A2与A1一样,穷举,不同的是它利用数据是从大到小排序的特点,因此,如果当前数据比如果小于目标数,那么说明只有的也一定小于,则目标不在序列中。

因此,A2比A1快。

算法A3利用数据有序特点,采用二分查找,每次将目标数与中间值比较,缩小搜索范围,因此A3比A2快。

综上,答案选(C)。

具体内容请参考排序算法以及第八章课件。

(2)关于算法A3,下列说法正确的是_____。

(A)对数据表中的任何数据,算法A3都适用;(B)对数据表中任何已排序的数据,算法A3都适用;(C)对已按成绩排序的数据表,算法A3都适用;(D)对已按成绩进行降序排列的数据表,算法A3都适用;(E)上述都不正确。

答案:D解释:本题考核排序算法的研究算法A3需求的数据应该是排序的,而且是对成绩排序的,因此排除(A)(B)。

其次,按照算法A3,应该是降序排序的数据才可用,因为升降序决定了算法二分查找的重订搜索范围实在中间值的左边还是右边,对于算法A3,要求是降序的。

因此选择(D)。

具体内容请参考排序算法以及第八章课件。

(3)关于算法A3和算法A1,下列说法正确的是_____。

(A)如果数据表中记录数越多,则算法A3相比算法A1的优势越明显,即查找时间越短;(B)如果数据表中记录数越多,则算法A1相比算法A3的优势越明显;即查找时间越短;(C)算法A3和算法A1的执行时间差异不会随数据表中记录数多少而变化;(D)上述都不正确。

A答案:解释:本题考核排序算法的研究数据越多,算法A1穷举,查找时间正比增加,算法A3二分查找,每次可缩小一半的查找范围,数据越多,优势越明显,算法A1时间复杂度是O(n), 算法A3时间复杂度是O(logn),因此选2择(A)。

具体内容请参考排序算法以及第八章课件。

(4)关于三个算法的复杂性,下列说法正确的是_____。

(A)算法A1、A2和A3的时间复杂性都为O(n);(B)算法A1和A2的时间复杂性为O(1),算法A3的时间复杂性为O(n);(C)算法A1的时间复杂性为O(n),算法A2的时间复杂性为O(n/2),算法A3的时间复杂性为O(n/4);(D)算法A1和A2的时间复杂性为O(n),算法A3的时间复杂性为O(logn); 2 (E)上述都不正确。

答案:D解释:本题考核排序算法的研究数据越多,算法A1穷举,线性查找,平均比较次数(n+1)/2,时间复杂度O(n)。

算法A2同样是线性查找,只是多了对剩余数据的判断,时间复杂度和A1一样,同样是O(n)。

算法A3二分查找,每次可缩小一半的查找范围,算法A3时间复杂度是O(logn),因此选择(D)。

2具体内容请参考排序算法以及第八章课件。

(5)针对按成绩降序排列的数据表,假设记录数为n,关于算法A2,下列说法正确的是_____。

(A)算法A2在任何情况下都需要读取n条记录,才能得到结果;(B)算法A2在任何情况下都需要读取n/2条记录,才能得到结果;(C)算法A2在最好的情况下是读取1条记录,在最差的情况是读取n条记录,才能得到结果;(D)算法A2在任何数据分布情况下,平均要读条记录才能得到结果;n/2取.(E)上述都不正确。

答案:C解释:本题考核排序算法的研究对于算法A2,最好情况:读取1条记录,刚好等于目标数,算法结束;或者读取1条记录,该记录小于目标数,因成绩降序排列,剩余数据都小于目标,所以记录中没有目标查询数,算法结束。

最坏情况:读取了n条记录,最后一条记录等于,则返回结果,不等于,则不在记录中。

算法结束。

综上,选择(C)。

具体内容请参考排序算法以及第八章课件。

3、关于“非结构化数据(文档)的查找与搜索”问题,参考下图,回答下列问题。

注意每份文档可能包含数千数万的词汇。

.查找有无)个全文文档中(n可能很大(1)若要在n最好的做为提高检索效率,某个关键词的文档,。

法是_____直接用给定关键词来匹配每一份文档中的 (A)则每一个词汇。

若该文档存在匹配成功的词汇,输出该文档;否则,不输出该文档。

个文档,首先建立一个“关键词”n (B)对这索引表,该索引表记录着“关键词”及包含该关。

在此基础上,用给定关键键词的“文档编号”则词来匹配索引表中的关键词。

如果匹配成功,则输出否则,输出索引表中相对应的文档编号;信息“没有含该关键词的文档”。

个文档,首先建立一个“关键词”n对这(C)索引表,该索引表记录着“关键词”及包含该关键词的“文档编号”,并按关键词进行字母序的排序。

在此基础上,用给定关键词来匹配索引表中的关键词。

如果匹配成功,则输出索引表中相对应的文档编号,否则,则输出信息“没有含该关键词的文档”。

(D)选项(B)(C)比选项(A)的做法好,但选项(B)(C)没有效率上的差别。

答案:C解释:本题考核排序算法的研究由题意知,n个全文文档数据量很大,若全文搜索,检索效率会很低,因此排除(A)。

建立“关键字”索引表,并包含“文档编号”,可以有效的缩小查找范围。

同时,对索引表进行排序,可以有效的提高查找效率。

因此,选择(C)。

具体内容请参考查找,排序算法以及第八章课件。

查找与某)可能很大(n个全文文档中n若要在(2).个关键词最相关的文档,为提高检索效果和检索效率,最好的做法是_____。

(A)对这n个文档,首先建立一个“关键词”索引表,该索引表记录着“关键词”及包含该关键词的“文档编号”,并按关键词进行字母序的排序。

在此基础上,用给定关键词来匹配索引表中的关键词。

如果匹配成功,则输出索引表中相对应的文档编号,否则,则输出信息“没有含该关键词的文档”。

(B)对这n个文档,首先建立一个“关键词”索引表,该索引表记录着“关键词”,包含该关键词的“文档编号”,以及该关键词在该文档中出现的“次数”,并按关键词进行字母序的排序。

在此基础上,用给定关键词来匹配索引表中的关键词。

如果匹配成功,则进一步寻找同一关键词“次数”最多的m 个索引项,输出相对应的文档编号;否则,则输出信息“没有含该关键词的文档”。

(C)对这n个文档,首先建立一个“关键词”索引表,该索引表记录着“关键词”,包含该关键词的“文档编号”,以及该关键词在该文档中;对索引表,按关键词进行字母出现的“次数”序的排序;如果关键词相同,则进一步按“次数”对同一关键词的若干文档进行降序排序。

在此基础上,用给定关键词来匹配索引表中的关键词。

如果匹配成功,则进一步寻找同一关键词“次数”最多的m个索引项,输出相对应的文档编号;否则,则输出信息“没有含该关键词的文档”。

(D)选项(B)(C)比选项(A)的做法好,但选项(B)(C)在执行效果和执行效率方面没有什么差别。

答案:C解释:本题考核排序算法的研究由题意知,要寻找与关键词最相关的文档,做法是以关键词出现次数为评判标准。

建立索引表,包含“关键词”,因要查找与关键词最相关的文档,所以需求相关文档中出现的“次数”,故而排除(A)选项,对于(B)(C),(C)选项中对关键词相同的文档进一步按“次数”进行降序排序,可以提高检索效率,因此选择(C)选项。

相关文档
最新文档