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

2018-12-27 17:49

解释:

本题考核排序算法的研究

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

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

(3)针对下列问题求解方法:对n个文档,首先建立一个“关键词”索引表,该索引表记录着“关键词”,包含该关键词的“文档编号”,以及该关键词在该文档中出现的“次数”;对索引表,按关键词进行字母序的排序;如果关键词相同,则进一步按“次数”对同一关键词的若干文档进行降序排序。在此基础上,用给定关键词来匹配索引表中的关键词。如果匹配成功,则进一步寻找次数最多的m个索引项,输出相对应的文档编号;否则,则输出信息“没有含该关键词的文档”。问该方法涉及到几类算法,说法正确的是_____。

(A)涉及字符串的字母序排序算法;

(B)涉及数值属性排序算法; (C)涉及字符串匹配算法; (D)涉及数值属性查找算法; (E)涉及上述全部算法;

答案:E 解释:

本题考核排序算法的研究

查找关键词,设计字符串匹配算法。对索引表按关键字进行字母序的排序,设计字符串的字母序排序算法。关键词相同,则进一步按“次数”对同一关键词的若干文档进行降序排序,涉及数值属性排序算法。寻找次数最多的m个索引项,涉及数值属性查找算法。综上,选择(E)。

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

(4)上图给出了一种“自动获取文档关键词”的方法,关于该方法的表述,最好的是_____。 (A)文档中出现次数最多的词汇必定是关键词;

(B)文档中去掉标点符号后,出现次数最多的词汇必定是关键词;

(C)文档中去掉标点符号和一些辅助词汇, 出现次数最多的词汇必定是关键词; (D)文档中去掉标点符号和一些辅助词汇, 出现次数最多且次数达到一定数值的词汇必定是关键词; (E)上述说法都不正确;

答案:D 解释:

本题考核排序算法的研究

“自动获取文档关键词”的方法是一个充分不必要条件。 关键词应排除标点符号和辅助词汇,因此排除(A)(B)。出现次数最多,但不能对单个文档而言就凭次数判断关键词,必须达到一定的标准,故而选择(D)。

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

4、关于“内排序”算法和“外排序”算法,下列说法不正确的是_____。

(A)“内排序”算法通常是内存中数据排序常用的算法,而“外排序”算法通常是大规模数据排序常用的算法;

(B)“内排序”算法由于内存排序应用的频繁性,所以算法要考虑用尽可能少的步骤,而“外排序”算法由于要利用磁盘保存中间结果,所以算法主要考虑尽可能少的读写磁盘;

(C)无论是“内排序”算法,还是“外排序”算法,都需要考虑读写磁盘的代价问题; (D)对一组需要排序的数据,能应用“内排序”算法时,尽量不用“外排序”算法;

答案:C 解释:

本题考核排序算法的研究 内排序:待排序的数据可一次性地装入内存中,即排序者可以完整地看到和操纵所有数据;

外排序:待排序的数据保存在磁盘上,不能一次性装入内存,即排序者不能一次完整地看到和操纵所有数据,需要将数据分批装入内存分批处理;

由上可知(A)(B)正确,(C)错误。 具体内容请参考排序算法以及第八章课件。

5、下列三种算法是经常应用的内排序算法:插入排序、选择排序和冒泡排序。阅读下列算法,回答下列问题。

INSERTION-SORT(A) 1. for i=2 to N

2. { key = A[i] ; 3. j =i-1; 4. While (j>0 and A[j]>key) do 5. { A[j+1]=A[j]; 6. j=j-1; } 7. A[j+1]=key; 8. }

SELECTION-SORT(A) 1. for i=1 to N-1 2. { k=i; 3. for j=i+1 to N

4. { if A[j]i then 6. { 7. temp =A[k]; 8. A[k]=A[i]; 9. A[i]=temp; 10. } 11. }

BUBBLE-SORT(A) 1. for i=1 to N-1

2. { haschange=false; 3. for j=1 to N-i 4. { if A[j]>A[j+1] then 5. { temp =A[j]; 6. A[j]=A[j+1]; 7. A[j+1]=temp; 8. haschange=true; 9. } 10. }

11. if (haschange ==false) then break; 12. }

(1)关于INSERTION-SORT算法的基本思想,下列说法正确的是_____。 (A)一个元素一个元素的处理。每次处理一个元素,通过与当前已排序元素的比较,将该元素放入到当前正确排序的位置。直到最后一个元素则算法结束。

(B)一个轮次一个轮次的处理。将元素集合分成两个部分,已排序元素集合和未排序元素集合,开始时已排序元素集合为空。在每一轮次,从未排序元素集合中找出最小值的元素,将其移入已排序元素集合;直到未排序元素集合为空时则算法结束。

(C)一个轮次一个轮次的处理。在每一轮次中依次对待排序数组元素中相邻的两个元素进行比较:如不符合排序关系,则交换两个元素。直到某一轮次没有元素交换发生则结束。 (D)上述说法都不正确。

答案:A 解释:

本题考核排序算法的研究 (A)描述的是插入排序,(B)描述的是选择排序,(C)描述的是冒泡排序。 具体内容请参考内排序算法以及第八章课件。

(2)关于SELECTION-SORT算法的基本思想,下列说法正确的是_____。 (A)一个元素一个元素的处理。每次处理一个元素,通过与当前已排序元素的比较,将该元素放入到当前正确排序的位置。直到最后一个元素则算法结束。

(B)一个轮次一个轮次的处理。将元素集合分成两个部分,已排序元素集合和未排序元

素集合,开始时已排序元素集合为空。在每一轮次,从未排序元素集合中找出最小值的元素,将其移入已排序元素集合;直到未排序元素集合为空时则算法结束。

(C)一个轮次一个轮次的处理。在每一轮次中依次对待排序数组元素中相邻的两个元素进行比较:如不符合排序关系,则交换两个元素。直到某一轮次没有元素交换发生则结束。 (D)上述说法都不正确。

答案:B 解释:

本题考核排序算法的研究 (A)描述的是插入排序,(B)描述的是选择排序,(C)描述的是冒泡排序。 具体内容请参考内排序算法以及第八章课件。

(3)关于BUBBLE-SORT算法的基本思想,下列说法正确的是_____。 (A)一个元素一个元素的处理。每次处理一个元素,通过与当前已排序元素的比较,将该元素放入到当前正确排序的位置。直到最后一个元素则算法结束。

(B)一个轮次一个轮次的处理。将元素集合分成两个部分,已排序元素集合和未排序元素集合,开始时已排序元素集合为空。在每一轮次,从未排序元素集合中找出最小值的元素,将其移入已排序元素集合;直到未排序元素集合为空时则算法结束。

(C)一个轮次一个轮次的处理。在每一轮次中依次对待排序数组元素中相邻的两个元素进行比较:如不符合排序关系,则交换两个元素。直到某一轮次没有元素交换发生则结束。 (D)上述说法都不正确。

答案:C 解释:

本题考核排序算法的研究 (A)描述的是插入排序,(B)描述的是选择排序,(C)描述的是冒泡排序。 具体内容请参考内排序算法以及第八章课件。

(4)关于排序的选择法和冒泡法,下列说法不正确的是_____。 (A)“选择法”和“冒泡法”都是每一轮次找出一个最小值元素,只是寻找最小值元素的方法不一样,在效率方面没有什么差别;

(B)“选择法”通过将所有未排序元素与当前轮次待寻找的最小值元素进行比较,获得当前轮次的最小值元素;而“冒泡法”通过相邻元素的两两比较,一个轮次完成也能获得一个最小值元素; (C)虽然“选择法”和“冒泡法”都是每一轮次找出一个最小值元素,但选择法每轮次仅比较,没有交换,直至找到最小值后做一次交换;而冒泡法每一轮次是通过相邻元素比较来找最小值,如果不满足排序,则交换相邻两个元素,交换可能频繁发生。这样来看,选择法比冒泡法要快一些; (D)上述说法有不正确的。

答案:A

解释:

本题考核排序算法的研究

“选择”与“冒泡”都是每轮查找出最小值,方法不同(B)选项是正确的,但效率是有不同的,(C)中描述正确,选择排序调用swap要比冒泡排序少,因此,选择(A)

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

(5)关于三种排序算法,下列说法正确的是_____。 (A)三种算法的时间复杂度都为O(n2),所以三种算法的执行效率是一样的;

(B)尽管三种算法的时间复杂度都为O(n2),但细致比较还是有差别的,例如冒泡法排序比选择法排序要快一些; (C)尽管细致比较三种算法的执行时间是有差别的,但这种差别对内排序问题而言是可以忽略不计的; (D)尽管细致比较三种算法的执行时间是有差别的,这种差别对内排序问题而言是重要的,因为内排序算法可能要被频繁的执行。

答案:D 解释:

本题考核排序算法的研究

三种算法的时间复杂度都是O(n2),但是细致比较是有差别的,(A)错误,如果被排序的记录很大,执行交换所需时间是客观的,将远远大于比较关键字和计算数组下标的时间。冒泡和插入排序调用次数最多,为n(n-1)/2,选择排序每遍只在选出最小记录后进行一次交换,需调用n-1次,因此(B)错误,有因为内排序算法要被频繁执行,因此这种差别对内排序问题而言是重要的,故而选择(D)。

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

(6)阅读INSERTION-SORT算法,关于第4.行至第6.行间程序段的作用,下列说法正确的是_____。 (A)将当前待处理元素,依次与已经排序的第j个元素进行比较,j采取递减方式循环,以找到当前元素所应在的位置,并将该位置以前的元素依次向后移动一个位置;

(B)将当前待处理元素,依次与已经排序的第j个元素进行比较,j采取递增方式循环,以找到当前元素所应在的位置,并将该位置以前的元素依次向后移动一个位置。

(C)将当前待处理元素,依次与已经排序的第j个元素进行比较,j采取递增方式循环,以找到当前元素所应在的位置,并将该位置以后的元素依次向前移动一个位置。

(D)将当前待处理元素,依次与已经排序的第j个元素进行比较,j采取递减方式循环,以找到当前元素所应在的位置,并将该位置以后的元素依次向后移动一个位置。

答案:D 解释:

本题考核排序算法的研究

插入排序,算法中J从I-1到1,递减,排除(B)(C),将大于key的元素依次向后移动,因而选择(D)。

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


第8章怎样研究算法排序算法示例练习题答案解析(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:同济大学07-08工程力学2试卷 (B卷)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: