niusouti.com
参考答案和解析
正确答案:A
更多“对n个记录进行非递减排序,在第一趟排序之后,一定能把关键码序列中的最大或最小元素放在其最终排 ”相关问题
  • 第1题:

    (10)待排序的关键码序列为(33,,1,9,25,67,82,53,95,12,70),要按关键码值递增顺序排序,采取以第一个关键码为基准元素的快递排序法,第一趟排序后关键码33被放到底个位置。 A.3 B.5 C.7 D.9


    正确答案:B
    【解析】快速排序的基本思想是:从表中选取一个元素(如本题中的33),将表中小于此元素的移到前面,大于此元素的移到后面,结果把线性表分割成两部分(两个子表),此元素插入到其分界线的位置处。然后分别对两个子表再次分割……本题中33作为分割的中界线,第一趟排序后排在比它小的18、9、25、12后面。

  • 第2题:

    下列排序算法中,第一趟排序完毕后,其最大或最小元一定在其最终位置上的算法是______。

    A.归并排序

    B.直接选择排序

    C.快速排序

    D.基数排序

    A.

    B.

    C.

    D.


    正确答案:C

  • 第3题:

    设待排序关键码序列为(24,19,32,43,38,6,13,22),要按关键码值递增地顺序进行排序,采取以第一个关键码为分界元素的快速排序法,第一趟完成后关键码43被放到第( )个位置。


    正确答案:B
    快速排序是起泡排序的改进。在快速排序中,任取一个记录,以它为基准用交换的方法将所有的记录分成两部分,关键码值比它小的在一部分,关键码值比它大的在另一部分,再分别对两个部分实施上述过程,一直重复到排序完成。本题中第一趟完成后的记录是(22,19,13,6,24,38,43,32)。可见43移向到第7个位置。

  • 第4题:

    在第一趟排序之后,一定能把数据表中最大或最小元素放在其最终位置上的排序算法是(40)。

    A.冒泡排序

    B.基数排序

    C.快速排序

    D.归并排序


    正确答案:A
    解析:第i趟冒泡排序是从第1个元素到第n-i+1个元素依次比较相邻两个元素的关键字,并在“逆序”时交换相邻元素,其结果是这n-i+1个元素中最大的元素被交换到第n-i+1的位置上。那么第一趟排序之后,就一定能把数据表中最大的元素放在其最终有序位置上。而其他排序算法均不能实现此要求。

  • 第5题:

    在第一趟排序之后,一定能把数据序列中最大或最小元素放在其最终位置上的排序 方法是(43)。

    A.冒泡排序

    B.插入排序

    C.快速排序

    D.归并排序


    正确答案:A
    本题考查算法基础知识。冒泡排序是通过不断比较和交换逻辑上相邻的元素而进行的排序过程,当从头到尾将元素进行一趟冒泡排序后,可以将最大元素(或最小)元素交换至最终位置。插入排序是不断将元素插入到有序序列中来实现排序的过程,在完成最后一个元素的插入处理之前,不能保证之前得到的有序序列包含了最大元素(或最小元素)。快速排序是在设置枢轴元素后,通过与其余元素的比较和交换(或移动),确保一趟快速排序后实现枢轴元素的最终定位,但是不能保证枢轴是最大元素(或最小元素),实际上若枢轴元素为序列的最大(或最小)元素,反而是快速排序的最坏情况。归并排序是将两个(或多个)有序子序列合并为一个有序序列的方式来实现排序的过程,只有完成最后一趟归并时才能将最大或最小元素放在其最终位置上。

  • 第6题:

    对n个关键码构成的序列采用直接插入排序法进行升序排序的过程是:在插入第i个关键码Ki时,其前面的i-1个关键码己排好序,因此令Ki与Ki-1、Ki-2、...,依次比较,最多到K1为止,找到插入位置并移动相关元素后将Ki插入有序子序 列的适当位置,完成本趟(即第i-1趟)排序。以下关于直接插入排序的叙述中,正确的是( )。

    A. 若原关键码序列已经升序排序,则排序过程中关键码间的比较次数最少
    B.若原关键码序列已经降序排序,则排序过程中关键码间的比较次数最少
    C.第1趟完成后即可确定整个序列的最小关键码
    D.第1趟完成后即可确定整个序列的最大关键码

    答案:A
    解析:

  • 第7题:

    对于具有n个元素的序列采用堆积排序法进行排序,排序的总趟数为n-1。


    正确答案:正确

  • 第8题:

    下列排序算法中,哪种排序方法在一趟结束后不一定能选出一个元素放在其最终位置上。()

    • A、 简单选择排序
    • B、 冒泡排序
    • C、 归并排序
    • D、 堆排序

    正确答案:C

  • 第9题:

    设待排序关键码序列为(25,18,9,33,67,82,53,95,12,70),要按关键码值递增的顺序进行排序,采取以第一个关键码为分界元素的快速排序法,第一趟完成后关键码33被放到了第()个位置。


    正确答案:9

  • 第10题:

    对16个元素的序列用冒泡排序法进行排序,共需要进行()趟冒泡。


    正确答案:15

  • 第11题:

    单选题
    对n个元素进行冒泡排序,要求按升序排列,程序中设定某一趟冒泡没有出现元素交换,就结束排序过程。对某n个元素的排序共进行了3n-6次元素间的比较就完成了排序,则()。
    A

    原序列是升序排列

    B

    原序列是降序排列

    C

    对序列只进行了2趟冒泡

    D

    对序列只进行了3趟冒泡


    正确答案: B
    解析: 暂无解析

  • 第12题:

    判断题
    对于具有n个元素的序列采用堆积排序法进行排序,排序的总趟数为n-1。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第13题:

    设待排序关键码序列为(25,18,9,33,67,82,53,95,12,70),要按关键码值递增的顺序进行排序,采取以第一个关键码为分界元素的快速排序法,第一趟完成后,关键码25被放到了第( )个位置。A.4B.3C.7D.8


    正确答案:A
    快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列.第一个次交换:12 18 9 33 67 82 53 95 25 70 第二次交换:12 18 9 25 67 82 53 95 33 70 第一趟完毕。

  • 第14题:

    对n个关键码构成的序列采用直接插入排序法进行升序排序的过程是:在插入第i个关键码Ki时,其前面的i-1个关键码己排好序,因此令Ki与Ki-1、Ki-2、...,依次比较,多到K1为止,找到插入位置并移动相关元素后将Ki插入有序子序列的适当位置,完成本趟(即第i-1趟)排序。以下关于直接插入排序的叙述中,正确的是()。

    A.若原关键码序列已经升序排序,则排序过程中关键码间的比较次数最少

    B.若原关键码序列已经降序排序,则排序过程中关键码间的比较次数最少

    C.第1趟完成后即可确定整个序列的最小关键码

    D.第1趟完成后即可确定整个序列的最大关键码


    正确答案:A

  • 第15题:

    每趟排序都从序列的未排好序的序列中挑选一个值最小(或最大)的元素,然后将其与未排好序的序列的第一个元素交换位置。此种排序法称为(54)。

    A.插入排序法

    B.选择排序法

    C.希尔排序法

    D.快速排序法


    正确答案:B
    解析:选择排序方法是每一趟排序从未排序的子序列中依次取出元素与已经排好序的序列中的元素进行比较,然后将其与未排好序的序列的第一个元素交换位置。因此选B。

  • 第16题:

    在第一趟排序之后,一定能把数据表中最大或最小元素放在其最终位置上的排序算法是______。

    A.冒泡排序

    B.基数排序

    C.快速排序

    D.归并排序


    正确答案:A
    解析:对于选项A,冒泡排序将被排序的记录数组R[1..n)垂直排列,每个记录R[i]看作是重量为ki的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R凡扫描到违反本原则的轻气泡,就使其向上“飘浮”。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。由此可见,冒泡排序第1趟排序之后,最轻的“气泡”一定会被浮到最上面,即能把数据表中最大或最小元素放在其最终位置上。故本题应该选择A。对于选项B,基数排序的基本思想是:从低位到高位依次对待排序的关键码进行分配和收集,经过d趟分配和收集,就可以得到一个有序序列。所以,基数排序第1趟排序之后,得到的是以数据表中各元素的个位进行排序的结果,不一定能把数据表中最大或最小元素放在其最终位置上。对于选项C,快速排序的基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。快速排序第1趟排序之后,只能使某个关键元素被插入到一个位置,使得该位置之前的所有元素均小于(或大于)关键元素,之后的所有元素均大于(或小于)关键元素。所以,也不一定能把数据表中最大或最小元素放在其最终位置上。对于选项D,归并排序是将两个或两个以上的有序子表合并成一个新的有序表。所以,归并排序第1趟排序之后,只能得到两两有序的一个序列,并不能把数据表中最大或最小元素放在其最终位置上。

  • 第17题:

    第二题 阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
    【说明】
    对n个元素进行简单选择排序的基本方法是:第一趟从第1个元素开始,在n个元素中选出最小者,将其交换至第一个位置,第二趟从第2个元素开始,在剩下的n-1个元素中选出最小者,将其交换至第二个位置,依此类推,第i趟从n-i+1个元素中选出最小元素,将其交换至第i个位置,通过n-1趟选择最终得到非递减排序的有序序列。 问题:2.1 【代码】
    #include
    void selectSort(int data[ ],int n)
    //对 data[0]~data[n-1]中的n个整数按非递减有序的方式进行排列
    {
    int i,j,k;
    int temp;
    for(i=0;i for(k=i,j=i+1;(1);(2)) //k表示data[i]~data[n-1]中最小元素的下标
    if(data[j] if(k!=i) {
    //将本趟找出的最小元素与data[i]交换
    temp=data[i]; (4) ;data[k]=temp;
    }
    }
    }

    int main()
    {
    int arr[ ]={79,85,93,65,44,70,100,57};
    int i,m;
    m=sizeof(arr)/sizeof(int); //计算数组元素的个数,用m表示
    (5); //调用selectSort对数组arr进行非递减排序
    for((6);i printf(“%d\t”,arr[i]);
    printf(“\n”);
    return 0;
    }


    答案:
    解析:
    j(2)j++
    (3)k=j
    (4)data[i]=data[k]
    (5)selectSort(arr,m)此处m也可以填8或者sizeof(arr)/sizeof(int), arr可以改成&arr[0]
    (6)i=0

    【解析】

    本题考查 C 程序设计基本技能及应用。简单选择排序方法是设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,与第i个记录交换。执行n-1趟后就完成了记录序列的排序。
    第1空应填j循环结束条件,j应该运行至序列末尾。填j第2空填j循环控制语句,j每次递增1,往后移动一个元素与a[i]进行比较。
    第3空为自动保存最大元素的下标,k=j。
    第4空为交换两个元素,temp为临时变量,保存data[i]的值,使用data[i]=data[k]使data[i]为后面n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,再将temp赋给data[k]。
    第5空为调用selectSort对数组arr进行非递减排序,selectSort有两个参数,数组和排序元素个数,为selectSort(arr,m)。
    第6空进行元素遍历输出所有的数组元素,从下标为0开始,所以填i=0。

  • 第18题:

    对具有n个元素的任意序列采用插入排序法进行排序,排序趟数为()。

    An-1

    B[log2n]

    Cn

    Dn+1


    A

  • 第19题:

    设待排序关键码序列为(25,18,9,33,67,82,53,95,12,70),要按关键码值递增的顺序进行排序,采取以第一个关键码为分界元素的快速排序法,第一趟排序完成后关键码95被放到第几个位置?()

    • A、7
    • B、8
    • C、9
    • D、10

    正确答案:B

  • 第20题:

    对具有n个元素的任意序列采用插入排序法进行排序,排序趟数为()。

    • A、n-1
    • B、[log2n]
    • C、n
    • D、n+1

    正确答案:A

  • 第21题:

    在对n个元素进行冒泡排序的过程中,第一趟排序至多需要进行()对相邻元素之间的交换。

    • A、 n/2
    • B、 n-1
    • C、 n
    • D、 n+1

    正确答案:B

  • 第22题:

    单选题
    下列排序算法中,哪种排序方法在一趟结束后不一定能选出一个元素放在其最终位置上。()
    A

     简单选择排序

    B

     冒泡排序

    C

     归并排序

    D

     堆排序


    正确答案: B
    解析: 暂无解析

  • 第23题:

    单选题
    对具有n个元素的任意序列采用插入排序法进行排序,排序趟数为()。
    A

    n-1

    B

    [log2n]

    C

    n

    D

    n+1


    正确答案: A
    解析: 暂无解析