更多“快速排序算法是利用()实现的算法”相关问题
  • 第1题:

    ( 9 )栈结构不适用与下列哪一种应用?

    A) 表达式求值

    B) 树的层次次序周游算法的实现

    C) 二叉树对称序周游算法的实现

    D) 快速排序算法的实现


    正确答案:D

  • 第2题:

    以下关于快速排序算法的描述中,错误的是( )。在快速排序过程中,需要设立基准元素并划分序列来进行排序。若序列由元素{12,25,30,45,52,67,85}构成,则初始排列为( )时,排序效率最高(令序列的第一个元素为基准元素)。

    A.快速排序算法是不稳定的排序算法

    B.快速排序算法在最坏情况下的时间复杂度为0(nlgn)

    C.快速排序算法是一种分治算法

    D.当输入数据基本有序时,快速排序算法具有最坏情况下的时间复杂度


    正确答案:B
    解析:最坏情况是每次划分选取的基准都是当前无序区中关键字最小(或最大)的记录,划分的结果是基准左边的子区间为空(或右边的子区间为空),而划分所得的另一个非空的子区间中记录数目,仅仅比划分前的无序区中记录个数减少一个。因此,快速排序必须做n-1次划分,第i次划分开始时区间长度为n-i+1,所需的比较次数为n-i(1≤i≤n-1),故总的比较次数达到最大值:cmax=n(n-1)/2=O(2)在最好情况下,每次划分所取的基准都是当前无序区的“中值”记录,划分的结果是基准的左、右两个无序子区间的长度大致相等。总的关键字比较次数:O(nlgn)

  • 第3题:

    下面排序算法中,初始数据集的排列顺序对算法的性能无影响的是()

    A.堆排序

    B.插入排序

    C.冒泡排序

    D.快速排序


    正确答案:A

  • 第4题:

    下列排序算法中,平均效率最低的排序算法是()

    A、插入法

    B、冒泡法

    C、选择法

    D、快速排序法


    参考答案:B

  • 第5题:

    栈结构不适用于下列_________应用。

    A.表达式求值

    B.树的层次次序周游算法的实现

    C.二叉树对称序周游算法的实现

    D.快速排序算法的实琬


    正确答案:B
    解析:栈是限定在表的一端进行插入和删除运算的线性表。表达式求值、递归过程实现都是栈应用的典型例子。二叉树周游具有后进先出的特性,与栈的后进先出特性相符合。快速排序是一个递归的过程,可以递归调用的算法来实现。

  • 第6题:

    对N个数排序,最坏情况下时间复杂度最低的算法是()排序算法

    A、插入

    B、冒泡

    C、归并

    D、快速


    正确答案:C

  • 第7题:

    栈结构不适用于下列________应用。

    A.表达式求值

    B.冒泡排序法的实现

    C.二叉树对称序周游算法的实现

    D.快速排序算法的实现


    正确答案:B
    解析:栈是一种特殊的线性表,限定仅在表的一端进行插入和删除运算的线性表,这一端称为栈顶(top),另一端则称为栈底(bottom)。表中无元素时称为空栈;最后进入栈顶的数据元素称为栈顶元素,新元素进栈要置于栈顶之上,删除或退栈必须先对栈顶进行。因此栈就形成了“后进先出” (LIFO)的操作原则。栈是使用最广泛的数据结构之一,表达式求值、递归过程实现都是栈应用的典型例子,二叉树周游具有后进先出的特性,即最先进入的左子树的周游最后完成,最后进入的左子树的周游最先完成,与栈的后进先出特性相符合。快速排序是在待排序序列中任取一个记录,以它为基准用交换的方法将所有的记录分成两部分,关键码值比它小的一个部分,关键码值比它大的在另一个部分,再分别对两个部分实施上述过程,一直重复到排序完成, 因此快速排序也是一个递归的过程,可以递归调用的算法来实现,属于栈的应用之一。所以A、C、D选项是适用的。

  • 第8题:

    快速排序算法是基于()的一种排序算法。


    正确答案:分治策略

  • 第9题:

    以下排序算法中,属于交换排序的算法有()

    • A、希尔排序
    • B、冒泡排序
    • C、快速排序
    • D、简单选择排序

    正确答案:B,C

  • 第10题:

    合并排序算法是利用()实现的算法。

    • A、分治策略
    • B、动态规划法
    • C、贪心法
    • D、回溯法

    正确答案:A

  • 第11题:

    多选题
    以下排序算法中,属于交换排序的算法有()
    A

    希尔排序

    B

    冒泡排序

    C

    快速排序

    D

    简单选择排序


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

  • 第12题:

    单选题
    合并排序算法是利用()实现的算法。
    A

    分治策略

    B

    动态规划法

    C

    贪心法

    D

    回溯法


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

  • 第13题:

    ● 以下关于快速排序算法的描述中,错误的是 (64) 。在快速排序过程中,需要设立基准元素并划分序列来进行排序。若序列由元素{12,25,30,45,52,67,85}构成,则初始排列为 (65) 时,排序效率最高(令序列的第一个元素为基准元素)。

    (64)A. 快速排序算法是不稳定的排序算法

    B. 快速排序算法在最坏情况下的时间复杂度为O(n1gn)

    C. 快速排序算法是一种分治算法

    D. 当输入数据基本有序时,快速排序算法具有最坏情况下的时间复杂度

    (65)A. 45,12,30,25,67,52,85

    B. 85,67,52,45,30,25,12

    C. 12,25,30,45,52,67,85

    D. 45,12,25,30,85,67,52


    正确答案:B,A
    试题(64)、(65)分析
      本题考查快速排序算法。
      快速排序算法是一种经典的排序算法,其基本思想是选择一个基准元素(通常选择第一个元素或者最后一个元素),通过一趟排序将待排序序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置;然后再递归地排序划分的两部分,因此本质上快速排序是一种分治算法。由于在排序的过程中,各元素与基准元素比较大小,若小于基准元素则与基准元素交换位置,因此该算法是不稳定的排序算法。当每一趟排序进行后,选择的基准元素恰好最大或者最小时,就把序列分成极端不均衡的两部分,即一部分为空,另一部分为待排序序列的元素个数减1,此时算法处于最坏情况,其时间复杂度为O(n2)。当输入数据基本有序或者所有元素值相等时,不论选择第一个元素还是最后一个元素作为基准元素,都恰好把序列分成极端不均衡的两部分,快速排序算法具有最坏情况下的时间复杂度。
      对于选项A,以45作为基准元素进行第一趟划分,先从后向前找出比45小的元素,67、52、85这三个元素保持不动,找到25,将其与45交换后,第一趟划分完成,序列为25,12,30,45,67,52,85。第二趟先对子序列25,12,30进行划分,使得25与12对调,形成子序列12,25,30;然后对67,52,85进行划分,使得67与52交换,形成子序列52,67,85。至此,整个排序过程完成。期间,第一趟划分中元素的比较次数为6次、交换1次,第二趟划分中元素的比较次数共4次、交换次数为2次,因此,排序过程中比较次数共10次,交换次数为3次。
      对于选项B,以85作为基准元素,因12比它小,所以将85与12交换,由于剩下的元素都比85小,因此保持不动,第一趟划分之后的元素序列为12,67,52,45,30,25,85,期间元素比较次数为6次、交换1次,第二趟对85之前的6个元素进行划分,由于67、52、45、30、25都比基准元素12大,因此它们保持不动,完成第二趟划分,形成的子序列为12,67,52,45,30,25,期间比较次数为5、交换次数为0。接下来第三趟对子序列67,52,45,30,25进行划分,以67为基准元素,情况与第一趟相同,进行4次比较、l次交换后,形成子序列25,52,45,30,67。第四趟对子序列25,52,45,30进行划分,情况与第二趟相同。依此类推,完成排序时比较次数为21次(6+5+4+3+2+1)。
      对于选项C,以12作为基准元素,因为后面的所有元素都比它大,所以所有元素是持不动,第一趟划分之后的元素序列为12,25,30,45,52,67,85,期间元素比较次数为6次、交换0次。第二趟对子序列25,30,45,52,67,85进行划分,以25作为基准元素,因为后面的所有元素都比它大,所以所有元素保持不动,第一趟划分之后的元素序列为25,30,45,52,67,85,期间元素比较次数为5次、交换0次。接下来对子序列30,45,52,67,85进行划分,同理,元素保持不动,期间元素比较次数为4次、交换0次。依此类推,完成整个排序比较次数为21次、交换0次。
      对于选项D,以45作为基准元素进行第一趟划分,先从后向前找出比45小的元素,85、67、52这三个元素保持不动,找到30,将其与45交换后,第一趟划分完成,序列30,12,25,45,85,67,52,期间元素比较次数为6次、交换1次。第二趟先对子序列30,12,25进行划分,以30为基准元素,30与25交换,经过2次比较、1次交换后子序列为25,12,30,需要再次对子序列25,12进行划分;同理,对子序列85,67,52进行划分后,结果为51,67,87,还需对子序列51,67进行划分。排序过程中比较次数共12次。
    参考答案
      (64)B(65)A

     

  • 第14题:

    栈结构不适用于下列( )应用?

    A)表达式求值

    B)快速排序算法的实现

    C)树的层次次序周游算法的实现

    D)二叉树对称序周游算法的实现


    正确答案:C
    栈是限定仅在表的一端进行插入和删除运算的线性表,这一端称为栈顶(top),另一端称为栈底(bottom),具有后进先出(LIFO)的操作原则。栈是使用最为广泛的数据结构之一,栈可应用于表达式求值、二叉树对称序周游算法的实现和快速排序算法的实现等。树的层次次序周游算法的实现用到的是队列而不是栈。

  • 第15题:

    下面的排序算法中,初始数据集的排列顺序对算法的性能无影响的是()

    A.插入排序

    B.堆排序

    C.冒泡排序

    D.快速排序


    正确答案:B

  • 第16题:

    就排序算法所用的辅助空间而言,堆排序、快速排序、归并排序的关系是()。A、堆排序<快速排序&l

    就排序算法所用的辅助空间而言,堆排序、快速排序、归并排序的关系是()。

    A、堆排序<快速排序<归并排序

    B、堆排序<归并排序<快速排序

    C、堆排序>归并排序>快速排序

    D、堆排序>快速排序>归并排序


    参考答案:A

  • 第17题:

    栈结构不适用于下列应用中的( )。

    A.表达式求值

    B.树的层次次序周游算法的实现

    C.二叉树对称周游算法的实现

    D.快速排序算法的实现


    正确答案:B
    栈是限定仅在表的-端进行插入和删除运算的线性表,这-端称为栈顶(top),另-端称为栈底(bottom),具有后进先出(LIFO)的操作原则。栈是使用最为广泛的数据结构之-,栈可应用于表达式求值、二叉树对称周游算法的实现和快速排序算法的实现等。树的层次次序周游算法的实现用到的是队列而不是栈。

  • 第18题:

    栈结构不适用于下列应用中的( )。

    A.表达式求值

    B.树的层次次序周游算法的实现

    C.二叉树对称序周游算法的实现

    D.快速排序算法的实现


    正确答案:B
    解析:栈是限定仅在表的一端进行插入和删除运算的线性表,这一端称为栈顶(top),另一端称为栈底(bottom),具有后进先出(LIFO)的操作原则。栈是使用最为广泛的数据结构之一,栈可应用于表达式求值、二叉树对称序周游算法的实现和快速排序算法的实现等。树的层次次序周游算法的实现用到的是队列而不是栈。

  • 第19题:

    占用的额外空间的空间复杂度为0(1)的排序算法是()。

    A.堆排序算法
    B.归并排序算法
    C.快速排序算法
    D.以上答案都不对

    答案:A
    解析:
    归并排序中,由于每一趟都要一个TR数组来复制,因此需要与待排记录等量的辅助空间O(n);而快速排序中的递归所耗费的栈空间最好情况下也要O(logn);堆排序仅在交换是需要一个记录的辅助空间。

  • 第20题:

    简述归并排序算法和快速排序算法的分治方法。


    正确答案: 1)归并排序的分治是将数组从中间分开,分别对前后来那个部分进行排序,将排序后的两个数组合并成整个数组的排序。这样分治为递归过程,直到一个元素时返回。
    2)快速排序的分治是选取分割元素,以分割元素为界,将数组分成两部分,一部分小于分割元素,一部分大于分割元素,分别对两部分排序。

  • 第21题:

    快速排序是排序算法中最快的一种。


    正确答案:错误

  • 第22题:

    数据结构与算法中,以下的排序是内排序的是()。

    • A、希尔排序
    • B、快速排序

    正确答案:A,B

  • 第23题:

    填空题
    快速排序算法是基于()的一种排序算法。

    正确答案: 分治策略
    解析: 暂无解析

  • 第24题:

    问答题
    简述归并排序算法和快速排序算法的分治方法。

    正确答案: 1)归并排序的分治是将数组从中间分开,分别对前后来那个部分进行排序,将排序后的两个数组合并成整个数组的排序。这样分治为递归过程,直到一个元素时返回。
    2)快速排序的分治是选取分割元素,以分割元素为界,将数组分成两部分,一部分小于分割元素,一部分大于分割元素,分别对两部分排序。
    解析: 暂无解析