采用下列排序算法对n个元素进行排序,其排序趟数肯定为n-1趟的排序方法有()。

题目
单选题
采用下列排序算法对n个元素进行排序,其排序趟数肯定为n-1趟的排序方法有()。
A

选择和插入

B

冒泡和快速

C

插入和快速

D

选择和冒泡

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

对数据序列(8,9,10,4,5,6,20,1,2)进行递增排序,采用每趟冒出一个最小元素的冒泡排序算法,需要进行的趟数至少是()。

A.3

В.4

C.5

D.8


参考答案:C

第2题:

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

An-1

B[log2n]

Cn

Dn+1


A

第3题:

有n个记录存储在带头结点的双向链表中,现用双向冒泡排序法对其按上升序进行排序,请写出这种排序的算法。(注:双向冒泡排序即相邻两趟排序向相反方向冒泡)。


参考答案:
  [算法描述]:
  typedef struct node
  { ElemType data;
  struct node *prior,*next;
  }node,*DLinkedList;
  void TwoWayBubbleSort(DLinkedList la)
  //对存储在带头结点的双向链表la中的元素进行双向起泡排序。
  {int exchange=1; // 设标记
  DLinkedList p,temp,tail;
  head=la //双向链表头,算法过程中是向下起泡的开始结点
  tail=null; //双向链表尾,算法过程中是向上起泡的开始结点
  while (exchange)
  {p=head->next; //p是工作指针,指向当前结点
  exchange=0; //假定本趟无交换
  while (p->next!=tail) // 向下(右)起泡,一趟有一最大元素沉底
  if (p->data>p->next->data) //交换两结点指针,涉及6条链
  {temp=p->next; exchange=1;//有交换
  p->next=temp->next;temp->next->prior=p //先将结点从链表上摘下
  temp->next=p; p->prior->next=temp; //将temp插到p结点前
  temp->prior=p->prior; p->prior=temp;
  }
  else p=p->next; //无交换,指针后移
  tail=p; //准备向上起泡
  p=tail->prior;
  while (exchange && p->prior!=head)
  //向上(左)起泡,一趟有一最小元素冒出
  if (p->dataprior->data) //交换两结点指针,涉及6条链
  {temp=p->prior; exchange=1; //有交换
  p->prior=temp->prior;temp->prior->next=p;
  //先将temp结点从链表上摘下
  temp->prior=p; p->next->prior=temp; //将temp插到p结点后(右)
  temp->next=p->next; p->next=temp;
  }
  else p=p->prior; //无交换,指针前移
  head=p; //准备向下起泡
  }// while (exchange)
  } //算法结束

第4题:

关于冒泡排序的比较次数和排序趟数描述正确的是()。

  • A、N个记录最多N-1趟排序即可完成
  • B、N个记录最少比较N-1次,可完成排序,这是记录完全有序的情况
  • C、N个记录最多比较N*(N-1)/2次可完成排序,这是记录完全逆序的情况
  • D、在一趟排序中若无记录交换,就会停止排序

正确答案:A,B,C,D

第5题:

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


正确答案:正确

第6题:

下列排序算法中,不能保证每趟排序至少能将一个元素放到其最终的位置上的是()。

A.快速排序
B.shell排序
C.堆排序
D.冒泡排序

答案:B
解析:
shell排序每次使待排序记录基本有序,但不能保证每趟排序至少能将一个元素放到其最终的位置上。

第7题:

对n个元素进行冒泡排序,通常要进行n-1趟冒泡,在第j趟冒泡中共要进行()次元素间的比较。

Aj

Bj-1

Cn-j

Dn-j-1


C

第8题:

下列排序算法中,()不能保证每趟排序至少能将一个元素放到其最终的位置上。

A.希尔排序

B、快速排序

C、冒泡排序

D、堆排序


参考答案:A
解释:快速排序的每趟排序能将作为枢轴的元素放到最终位置;冒泡排序的每趟排序能将最大或最小的元素放到最终位置;堆排序的每趟排序能将最大或最小的元素放到最终位置。

第9题:

用快速排序算法对序列45,35,65,97,78,13,27进行排序。 (每一趟排序以第一个元素为数轴。要求每一趟排序有完整的过程。)


正确答案: 第一趟:27,35,65,97,78,13,45;27,35,45,97,78,13,65;27,35,13,97,78,45,65;
27,35,13,45,78,97,65;
第二趟:13,35,27,45,78,97,65;13,27,35,45,78,97,65;
第三趟:13,27,35,45,65,97,78;13,27,35,45,65,78,95;

第10题:

对于n个元素构成的线性表,采用简单选择排序共需进行()趟排序。


正确答案:n-1