数据结构排序习题
(完整word版)数据结构 第八章排序

第八章排序:习题习题一、选择题1.在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是( )。
A.希尔排序B.冒泡排序C.插入排序D.选择排序2.设有1000个无序的记录,希望用最快的速度挑选出其中前10个最大的记录,最好选用( )排序法。
A.冒泡排序B.快速排序C.堆排序D.基数排序3.在待排序的记录序列基本有序的前提下,效率最高的排序方法是( )。
A.插入排序B.选择排序C.快速排序D.归并排序’4.不稳定的排序方法是指在排序中,关键字值相等的不同记录的前后相对位置( )。
A.保持不变B.保持相反C.不定D.无关5.内部排序是指在排序的整个过程中,全部数据都在计算机的( )中完成的排序。
A. 内存储器B.外存储器C.内存储器和外存储器D.寄存器6.用冒泡排序的方法对n个数据进行排序,第一趟共比较( )对记录。
A.1B.2C.n-lD.n7.直接插入排序的方法是从第( )个记录开始,插入前边适当位置的排序方法。
A.1B.2C.3D.n8.用堆排序的方法对n个数据进行排序,首先将n个记录分成( )组。
A.1B.2C.n-lD.n9.归并排序的方法对n个数据进行排序,首先将n个记录分成( )组,两两归并。
A.1B.2C.n-lD.n10.直接插入排序的方法要求被排序的数据( )存储。
A.必须是顺序B.必须是链表C.顺序或链表D.二叉树11.冒泡排序的方法要求被排序的数据( )存储。
A.必须是顺序B.必须是链表C.顺序或链表D.二叉树12.快速排序的方法要求被排序的数据( )存储。
A.必须是顺序B.必须是链表C.顺序或链表D.二叉树13.排序方法中,从未排序序列中依次取出记录与已排序序列(初始时为空)中的记录进行比较,将其放入已排序序列的正确位置上的方法,称为( )。
A.希尔排序B.冒泡排序C.插入排序D.选择排序14.每次把待排序的记录划分为左、右两个子序列,其中左序列中记录的关键字均小于等于基准记录的关键字,右序列中记录的关键字均大于基准记录的关键字,则此排序方法叫做( )。
数据结构第九章排序习题与答案

习题九排序一、单项选择题1.下列内部排序算法中:A.快速排序 B.直接插入排序C. 二路归并排序D.简单选择排序E. 起泡排序F.堆排序(1)其比较次数与序列初态无关的算法是()(2)不稳定的排序算法是()(3)在初始序列已基本有序(除去n 个元素中的某 k 个元素后即呈有序, k<<n)的情况下,排序效率最高的算法是()(4)排序的平均时间复杂度为O(n?logn)的算法是()为 O(n?n) 的算法是()2.比较次数与排序的初始状态无关的排序方法是( )。
A.直接插入排序B.起泡排序C.快速排序D.简单选择排序3.对一组数据( 84, 47, 25, 15, 21)排序,数据的排列次序在排序的过程中的变化为(1) 84 47 25 15 21(2) 15 47 25 84 21(3) 15 21 25 84 47(4) 15 21 25 47 84则采用的排序是 ()。
A. 选择B.冒泡C.快速D.插入4.下列排序算法中 ( )排序在一趟结束后不一定能选出一个元素放在其最终位置上。
A. 选择B.冒泡C.归并D.堆5.一组记录的关键码为(46,79,56, 38,40, 84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()。
A. (38,40,46,56,79,84) B. (40,38,46,79,56,84)C. (40,38,46,56,79,84) D. (40,38,46,84,56,79)6.下列排序算法中,在待排序数据已有序时,花费时间反而最多的是()排序。
A.冒泡 B. 希尔C. 快速D. 堆7.就平均性能而言,目前最好的内排序方法是() 排序法。
A. 冒泡B.希尔插入C.交换D.快速8.下列排序算法中,占用辅助空间最多的是:()A. 归并排序B.快速排序C.希尔排序D.堆排序9.若用冒泡排序方法对序列 {10,14,26,29,41,52}从大到小排序,需进行()次比较。
计算机专业基础综合数据结构(排序)历年真题试卷汇编3

计算机专业基础综合数据结构(排序)历年真题试卷汇编3(总分:72.00,做题时间:90分钟)一、单项选择题(总题数:15,分数:36.00)1.下面给出的四种排序法中,( )排序法是不稳定性排序法。
【北京航空航天大学1999一、10(2分)】A.插入B.冒泡C.二路归并D.堆√2.下列排序算法中,其中( )是稳定的。
【福州大学1998一、3(2分)】A.堆排序,冒泡排序B.快速排序,堆排序C.直接选择排序,归并排序D.归并排序,冒泡排序√3.稳定的排序方法是( )。
【北方交通大学2000二、3(2分)】A.直接插入排序和快速排序B.折半插入排序和起泡排序√C.简单选择排序和四路归并排序D.树形选择排序和Shell排序4.下列排序方法中,哪一个是稳定的排序方法?( )。
【北方交通大学2001一、8(2分)】A.直接选择排序B.二分法插入排序√C.希尔排序D.快速排序5.下列排序算法中,( )是稳定排序。
【北京理工大学2007一、10(1分)】A.希尔排序B.快速排序C.堆排序D.直接插入排序√6.如果待排序序列中两个数据元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的。
( )就是不稳定的排序方法。
【清华大学1998一、3(2分)】A.起泡排序B.归并排序C.Shell排序√D.直接插入排序E.简单选择排序√7.若要求排序是稳定的,且关键字为实数,则在下列排序方法中应选( )排序为宜。
【中科院计算所2000一、5(2分)】A.直接插入√B.直接选择C.堆D.快速E.基数8.若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是( )。
【中国科技大学1998二、4(2分)】【中科院计算所1998二、4(2分)】A.快速排序B.堆排序C.归并排序√D.直接插入排序9.下面的排序算法中,不稳定的是( )。
【北京工业大学1999一、2(2分)】A.起泡排序B.折半插入排序C.简单选择排序√D.希尔排序√E.基数排序下列内部排序算法中:【北京工业大学2000一、1(10分每问2分)】A.快速排序B.直接插入排序C.二路归并排序D.简单选择排序E.起泡排序(分数:8.00)(1).其比较次数与序列初态无关的算法是( )A.B.C. √D. √E.(2).不稳定的排序算法是( )A. √B.C.D. √E.(3).在初始序列已基本有序(除去n个元素中的某k个元素后即呈有序,k<A.B. √C.D.E.(4).排序的平均时间复杂度为O(n*10gn)的算法是( ),为O(n*n)的算法是( )A. √B. √C. √D. √E. √10.排序趟数与序列的原始状态有关的排序方法是( )排序法。
计算机专业基础综合数据结构(排序)历年真题试卷汇编1

计算机专业基础综合数据结构(排序)历年真题试卷汇编1(总分:72.00,做题时间:90分钟)一、单项选择题(总题数:15,分数:30.00)1.下列序列中,( )是执行第一趟快速排序后所得的序列。
【福州大学1998一、9(2分)】A.[68,11,18,69] [23,93,73]B.[68,11,69,23] [18,93,73]C.[93,73][68,11,69,23,18] √D.[68,11,69,23,18] [93,73]枢轴是73。
2.适合并行处理的排序算法是( )。
【西安电子科技大学2005一、8(1分)】【电子科技大学2005一、8(1分)】A.选择排序B.快速排序√C.希尔排序D.基数排序3.一组记录的关键字为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为( )。
【北京交通大学2005一、8(2分)【燕山大学2001一、4(2分)】A.(38,40,46,56,79,84)B.(40,38,46,79,56,84)C.(40,38,46,56,79,84) √D.(40,38,46,84,56,79)如何对一趟快速排序的结果在最短的时间内做出正确判断,这里给出建议:首先84应该不动,所以D排除了;接着40应调到序列首,所以A排除了;接着79应调到移走40的空位上,B排除了。
选择答案C,不必再继续做了(假定确有唯一正确答案)。
4.下列排序算法中,( )算法可能会出现下面的情况:初始数据有序时,花费的时间反而最多。
【中南大学2005一、4(2分)】A.快速排序√B.堆排序C.希尔排序D.冒泡排序5.将一组无序的数据重新排列成有序序列,其方法有:( )。
【武汉理工大学2004一、8(3分)】A.拓扑排序B.快速排序√C.堆排序√D.基数排序√6.就平均性能而言,目前最好的内排序方法是( )排序法。
【西安电子科技大学1998一、9(2分)】A.冒泡B.希尔插,AC.交换D.快速√7.如果只想得到1000个元素组成的序列中第5个最小元素之前的部分排序的序列,用( )方法最快。
数据结构考研试题精选及答案第10章排序

第10章 排序排序排序一、选择题 1.某内排序方法的稳定性是指.某内排序方法的稳定性是指( )( )( )。
【南京理工大学【南京理工大学 1997 1997 1997 一、一、一、101010((2分)】 A .该排序算法不允许有相同的关键字记录该排序算法不允许有相同的关键字记录 B B B..该排序算法允许有相同的关键字记录记录C .平均时间为0(n log n n log n)的排序方法)的排序方法)的排序方法D D D.以上都不对.以上都不对.以上都不对2.下面给出的四种排序法中下面给出的四种排序法中( )( )( )排序法是不稳定性排序法。
排序法是不稳定性排序法。
【北京航空航天大学北京航空航天大学 1999 1999 1999 一、一、10 10 ((2分)】 A. A. 插入插入插入 B. B. B. 冒泡冒泡冒泡 C. C. C. 二路归并二路归并二路归并 D. D. D. 堆积堆积堆积 3.下列排序算法中,其中(.下列排序算法中,其中( )是稳定的。
)是稳定的。
)是稳定的。
【福州大学【福州大学 1998 1998 1998 一、一、一、3 (23 (2分)】A. A. 堆排序,冒泡排序堆排序,冒泡排序堆排序,冒泡排序B. B. B. 快速排序,堆排序快速排序,堆排序快速排序,堆排序C. C. 直接选择排序,归并排序直接选择排序,归并排序直接选择排序,归并排序D. D. D. 归并排序,冒泡排序归并排序,冒泡排序归并排序,冒泡排序4.稳定的排序方法是(.稳定的排序方法是( )) 【北方交通大学【北方交通大学【北方交通大学 2000 2000 2000 二、二、二、33(2分)】 A .直接插入排序和快速排序.直接插入排序和快速排序 B B B.折半插入排序和起泡排序.折半插入排序和起泡排序.折半插入排序和起泡排序C .简单选择排序和四路归并排序.简单选择排序和四路归并排序D D D.树形选择排序和.树形选择排序和shell 排序排序5.下列排序方法中,哪一个是稳定的排序方法?(.下列排序方法中,哪一个是稳定的排序方法?( ) 【北方交通大学【北方交通大学【北方交通大学 2001 2001 2001 一、一、一、88(2分)】A .直接选择排序.直接选择排序B B B.二分法插入排序.二分法插入排序.二分法插入排序C C C.希尔排序.希尔排序.希尔排序D D D.快速排序.快速排序.快速排序6.若要求尽可能快地对序列进行稳定的排序,则应选(.若要求尽可能快地对序列进行稳定的排序,则应选(A A .快速排序.快速排序 B B B.归并排序.归并排序.归并排序 C C C.冒.冒泡排序)。
数据结构-排序习题

习题精选一、选择题1.★某内排序方法的稳定性是指()。
【排序的基本概念】A.该排序算法不允许有相同的关键字记录B.该排序算法允许有相同的关键字记录C.平均时间为0(n log n)的排序方法D.以上都不对【答案】D2.★★下面给出的四种排序法中()排序法是不稳定性排序法。
【排序的基本概念】A. 插入B. 冒泡C. 二路归并D. 堆积【答案】D3.★★若需在O(nlogn)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是()。
【排序的基本概念】A. 快速排序B. 堆排序C. 归并排序D. 直接插入排序【答案】C4.★★在初始序列已基本有序(除去n 个元素中的某k 个元素后即呈有序,k<<n)的情况下,排序效率最高的算法是()【排序的基本概念】A.快速排序B.直接插入排序C. 二路归并排序D. 简单选择排序E. 堆排序【答案】B5.★★排序趟数与序列的原始状态有关的排序方法是()排序法。
【排序的基本概念】A.插入B. 选择C. 冒泡D. 归并【答案】C6.★★数据序列(8,9,10,4,5,6,20,1,2)只能是下列排序算法中的( )的两趟排序后的结果。
【知识点综合】A.选择排序B.冒泡排序C.插入排序D.堆排序【答案】C7.★★一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()。
【快速排序】A.(38,40,46,56,79,84) B. (40,38,46,79,56,84)C.(40,38,46,56,79,84) D. (40,38,46,84,56,79)【答案】C8. ★★在下面的排序方法中,辅助空间为O(n)的是( ) 。
【知识点综合】A.希尔排序B. 堆排序C. 选择排序D. 归并排序【答案】D9.下列排序算法中,在每一趟都能选出一个元素放到其最终位置上,并且其时间性能受数据初始特性影响的是:()。
数据结构(内排序)练习题与答案

1、以下关于排序的叙述中正确的是()。
A.排序方法都是在顺序表上实现的,在链表上无法实现排序方法B.稳定的排序方法优于不稳定的排序方法,因为稳定的排序方法效率较高C.在顺序表上实现的排序方法在链表上也同样适合D.对同一个顺序表使用不同的排序方法进行排序,得到的排序结果可能不同正确答案:D解析: D、稳定的排序方法的效率不一定都比不稳定的排序方法高。
有些排序方法既可以上顺序表上实现,也可以在链表上实现,但不是所有的排序方法都如此。
由于排序方法具有不同的稳定性,所以对同一个顺序表(存在相同的多个关键字记录)使用不同的排序方法进行排序,得到的排序结果可能不同。
2、以下不属于内排序方法的是()。
A.直接插入排序B.拓扑排序C.二路归并排序D.堆排序正确答案:B解析: B、拓扑排序是一种产生拓扑序列的方法,不属内排序方法。
3、目前来讲,基于比较的内排序方法最好的平均时间复杂度为()。
A. O(log2n)B. O(n2)C. O(nlog2n)D. O(n)正确答案:C解析: C、目前来讲,基于比较的内排序方法最好的平均时间复杂度为O(nlog2n)。
4、对有n个记录的表进行直接插入排序,在最好情况下需比较()次关键字。
A.n(n-1)/2B.n-1C.n/2D.n+1正确答案:B解析: B、直接插入排序在初始数据正序时效率最好,此时只需要n-1次关键字比较。
5、数据序列{8,9,10,4,5,6,20,1,2}只能是()算法的两趟排序后的结果。
A.堆排序B.简单选择排序C.冒泡排序D.直接插入排序正确答案:D解析: D、采用排除法,因为两趟排序后结果中的有序区不是全局有序的,所以只能是直接插入排序,不可能是其他三种排序方法。
6、对数据序列{15,9,7,8,20,-1,4}进行排序,进行一趟后数据的排序变为{4,9,-1,8,20,7,15},则采用的是()算法。
A.冒泡排序B.希尔排序C.快速排序D.简单选择排序正确答案:B解析: B、因为一趟排序后结果中的有序区不是全局有序的,所以不可能是简单选择排序和冒泡排序。
数据结构排序部分练习题

一、单选题12.设有5000个无序的元素,希望用最快的速度挑选出其中前50个最大的元素,最好选用( )法。
A.冒泡排序B.快速排序C.堆排序D.归并排序1.已知持排序的n个元素可分为n/k个组,每个组包含k个元素,各组间分块有序,若采用基于比较的排序,其时间下界应为:( )A.O(nlog2n) B.O(nlog2k) C.O(klog2n) D.O(klog2k))且稳定的排序方法是( )。
2.最好和最坏时间复杂度均为O(nnlog2A.快速排序B.堆排序C.归并排序D.基数排序3.下列排序算法中,当初始数据有序时,花费时间反而最多的是( )。
A.起泡排序B.希尔排序C.堆排序D.快速排序4.若需在O(nlog2n)的时间内完成排序,且要求稳定,则可选择()A.快速排序B.堆排序C.归并排序D.直接插入排序5.排序趟数与序列的原始状态有关的排序方法是( )排序法。
A.插入B.选择C.希尔D.快速6.已知数据表每个元素距离其最终位置不远,则最省时间的排序算法是( )。
A.堆排序B.直接插入排序C.快速排序D.直接选择排序7.关键字比较次数与数据的初始状态无关的排序算法是( )。
A.直接选择排序B.冒泡排序C.直接插入排序D.希尔排序8. 若一个元素序列基本有序,则选用()方法较快。
A.直接插入排序B.直接选择排序C.堆排序D.快速排序9. 若要从1000个元素中得到4个最小值元素,最好采用()方法。
A.直接插入排序B.直接选择排序C.堆排序D.快速排序10. 若要对1000个元素排序,要求既快又稳定,则最好采用()方法。
A.直接插入排序B.归并排序C.堆排序D.快速排序11. 若要对1000个元素排序,要求既快又节省存储空间,则最好采用()方法。
A.直接插入排序B.归并排序C.堆排序D.快速排序12. 在下列排序方法中,空间复杂性为O(log2n)的方法为()。
A.直接选择排序B.归并排序C.堆排序D.快速排序13. 在平均情况下速度最快的排序方法为()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
07排序【单选题】1. 从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为(A)排序法。
A、直接插入B、简单选择C、希尔D、二路归并2. 直接插入排序在最好情况下的时间复杂度为(B)。
A、O(logn)B、O(n)C、O(n*logn)D、O(n2)3. 设有一组关键字值(46,79,56,38,40,84),则用堆排序的方法建立的初始堆为(B)。
A、79,46,56,38,40,80B、84,79,56,38,40,46C、84,79,56,46,40,38D、84,56,79,40,46,384. 设有一组关键字值(46,79,56,38,40,84),则用快速排序的方法,以第一个记录为基准得到的一次划分结果为(C)。
A、38,40,46,56,79,84B、40,38,46,79,56,84C、40,38,46,56,79,84D、40,38,46,84,56,795. 将两个各有n个元素的有序表归并成一个有序表,最少进行(A)次比较。
A、nB、2n-1C、2nD、n-16. 下列排序方法中,排序趟数与待排序列的初始状态有关的是(C)。
A、直接插入B、简单选择C、起泡D、堆7. 下列排序方法中,不稳定的是(D)。
A、直接插入B、起泡C、二路归并D、堆8. 若要在O(nlog2n)的时间复杂度上完成排序,且要求排序是稳定的,则可选择下列排序方法中的(C)。
A、快速B、堆C、二路归并D、直接插入9. 设有1000个无序的数据元素,希望用最快的速度挑选出关键字最大的前10个元素,最好选用(C)排序法。
A、起泡B、快速C、堆D、基数10. 若待排元素已按关键字值基本有序,则下列排序方法中效率最高的是(A)。
A、直接插入B、简单选择C、快速D、二路归并11. 数据序列(8,9,10,4,5,6,20,1,2)只能是下列排序算法中的(C)的两趟排序后的结果。
A、选择排序B、冒泡排序C、插入排序D、堆排序12. (A)占用的额外空间的空间复杂性为O(1)。
A、堆排序算法B、归并排序算法C、快速排序算法D、以上答案都不对13. 对一组数据(84,47,25,15,21)排序,数据的排列次序在排序的过程中的变化为(1)84 47 25 15 21(2)15 47 25 84 21(3)15 21 25 84 47(4)15 21 25 47 84则采用的排序是(A)。
A、选择B、冒泡C、快速D、插入14. 一个排序算法的时间复杂度与(B)有关。
A、排序算法的稳定性B、所需比较关键字的次数C、所采用的存储结构D、所需辅助存储空间的大小15. 适合并行处理的排序算法是(B)。
A、选择排序B、快速排序C、希尔排序D、基数排序16. 下列排序算法中,(A)算法可能会出现下面的情况:初始数据有序时,花费的时间反而最多。
A、快速排序B、堆排序C、希尔排序D、起泡排序17. 有些排序算法在每趟排序过程中,都会有一个元素被放置在其最终的位置上,下列算法不会出现此情况的是(A)。
A、希尔排序B、堆排序C、起泡排序D、快速排序18. 在文件“局部有序”或文件长度较小的情况下,最佳内部排序的方法是(A)。
A、直接插入排序B、起泡排序C、简单选择排序D、快速排序19. 下列排序算法中,(D)算法可能会出现下面情况:在最后一趟开始之前,所有元素都不在其最终的位置上。
A、堆排序B、冒泡排序C、快速排序D、插入排序20. 下列排序算法中,占用辅助空间最多的是(A)。
A、归并排序B、快速排序C、希尔排序D、堆排序21. 从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为(A)排序法。
A、插入B、选择C、希尔D、二路归并22. 用直接插入排序方法对下面四个序列进行排序(由小到大),元素比较次数最少的是(C)。
A、94,32,40,90,80,46,21,69B、32,40,21,46,69,94,90,80C、21,32,46,40,80,69,90,94D、90,69,80,46,21,32,94,4023. 对序列{15,9,7,8,20,-1,4}用希尔排序方法排序,经一趟后序列变为{15,-l,4,8,20,9,7}则该次采用的增量是(B)。
A、lB、4C、3D、224. 在含有n个关键字的小根堆(堆顶元素最小)中,关键字最大的记录有可能存储在(D)位置上。
A、⎣n/2⎦B、⎣n/2⎦ -1C、1D、⎣n/2⎦ +225. 对n个记录的线性表进行快速排序为减少算法的递归深度,以下叙述正确的是(A)。
A、每次分区后,先处理较短的部分B、每次分区后,先处理较长的部分C、与算法每次分区后的处理顺序无关D、以上三者都不对26. 从堆中删除一个元素的时间复杂度为(B)。
A、O(1)B、O(log2n)C、O(n)D、O(nlog2n)【计算题】1. 设有关键字序列(503,087,512,061,908,170,897,275,653,426),试用下列各内部排序方法对其进行排序,要求写出每趟排序结束时关键字序列的状态。
(1)直接插入法;解:初始:[503],087,512,061,908,170,897,275,653,426第一趟:[087,503],512,061,908,170,897,275,653,426第二趟:[087,503,512],061,908,170,897,275,653,426第三趟:[061,087,503,512],908,170,897,275,653,426第四趟:[061,087,503,512,908],170,897,275,653,426第五趟:[061,087,170,503,512,908],897,275,653,426第六趟:[061,087,170,503,512,897,908],275,653,426第七趟:[061,087,170,275,503,512,897,908],653,426(2)希尔排序法,增量序列为(5,3,1);解:初始:503,087,512,061,908,170,897,275,653,426第一趟:170,087,275,061,426,503,897,512,653,908第二趟:061,087,275,170,426,503,897,512,653,908第三趟:061,087,170,275,426,503,512,653,897,908(3)快速排序法;解:初始:[503,087,512,061,908,170,897,275,653,426]第一趟:[426,087,275,061,170],503,[897,908,653,512]第二趟:[170,087,275,061],426[],503,[512,653],897,[908]第三趟:[061,087],170,[275],426,503,512,[653],897,908第四趟:061,087,170,275,426,503,512,653,897,908(4)堆排序法;解:初始:503,087,512,061,908,170,897,275,653,426第一趟:908,653,897,503,426,170,512,275,061,087第二趟:897,653,512,503,426,170,087,275,061,908第三趟:653,503,512,275,426,170,087,061,897,908第四趟:512,503,170,275,426,061,087,653,897,908第五趟:503,426,170,275,087,061,512,653,897,908第六趟:426,275,170,061,087,503,512,653,897,908第七趟:275,087,170,061,426,503,512,653,897,908第八趟:170,087,061,275,426,503,512,653,897,908第九趟:087,061,170,275,426,503,512,653,897,908第十趟:061,087,170,275,426,503,512,653,897,908(5)二路归并排序法;解:初始:[503],[087],[512],[061],[908],[170],[897],[275],[653],[426]第一趟:[087,503],[061,512],[170,908],[275,897],[426,653]第二趟:[061,087,503,512],[170,275,897,908],[426,653]第三趟:[061,087,170,275,503,512,897,908],[426,653]第四趟:[061,087,170,275,426,503,512,653,897,908]【算法题】下列算法题中可能用到的类如下:public class SortTable {private int st[ ];public SortTable(int length){int i;st=new int[length];for(i=0;i<length;i++)st[i]=(int)(Math.random()*10000);}//构造函数}//SortTable1. 在SortTable类中添加实现如下功能的方法:(1)对数据元素按奇偶转换排序法进行排序。
方法为:第一趟对所有奇数的i,将st[i]和st[i+1]进行比较,第二趟对所有偶数的i,将st[i]和st[i+1]进行比较,每次比较时若st[i]>st[i+1],则将二者交换,以后重复上述二趟过程交换进行,直至整个数组有序。
解:public void oesort( ){boolean change=true;int temp;while (change){change=false;for(i=0;i<st.length;i+=2){if (st[i+1]<st[i]){change=true;temp=st[i+1]; st[i+1]=st[i]; st[i]=temp;}//if}//forfor(i=1;i<st.length;i+=2){if (st[i+1]<st[i]){change=true;temp=st[i+1]; st[i+1]=st[i]; st[i]=temp;}//if}//for}//while}//oesort(2)设待排数据元素的值互不相同,对它们按计数排序法进行排序,方法为:另设数组count,对每个元素st[i],统计关键字值比它小的元素个数存于count[i],再依count[i]值的大小对st中元素进行重排。