对一组初始关键字序列(40,50,95,20,15,70,60,45,10)进行冒泡排序,则第一趟需要进行相邻记录的比较

题目
填空题
对一组初始关键字序列(40,50,95,20,15,70,60,45,10)进行冒泡排序,则第一趟需要进行相邻记录的比较的次数为(),在整个排序过程中最多需要进行()趟排序才可以完成。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

按排序策略分类,冒泡排序属于(59)。对n个记录的文件进行排序时,如果待排序文件中的记录初始时为所要求次序的逆序,则冒泡排序过程中需要进行(60)次元素值的比较。

(50)

A.插入排序

B.选择排序

C.交换排序

D.归并排序


正确答案:C

第2题:

设一组初始记录关键字序列为(345,253,674,924,627),则用基数排序需要进行()趟的分配和回收才能使得初始关键字序列变成有序序列。

A.3
B.8
C.5
D.6

答案:A
解析:
因为待排序列中最大的数为三位数,所以需要进行3次。

第3题:

n个元素进行冒泡法排序,通常需要进行________趟冒泡,第j趟冒泡要进行______次元素间的比较。


参考答案:n-1,n-j

第4题:

20个元素进行冒泡法排序,通常需要进行19趟冒泡,其中第10趟冒泡共需要进行()次元素间的比较。


正确答案:10

第5题:

30个记录的序列进行冒泡排序,则有可能()。

  • A、29次比较就完成排序
  • B、进行29趟排序才结束排序
  • C、不能完成排序
  • D、可能10趟就结束了排序

正确答案:A,B,D

第6题:

设一组初始记录关键字的长度为8,则最多经过()趟插入排序可以得到有序序列。

A.8
B.7
C.9
D.6

答案:B
解析:
插入排序的每一趟在待排元素中取出第一个元素,移至有序序列的适当的位置,所以共八个关键字的序列,最多经过7趟插入排序就可以得到一个有序序列。

第7题:

设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为()

A.3,2,5,8,6
B.2,3,5,8,6
C.3,2,5,6,8
D.2,3,6,5,8

答案:C
解析:
快速排序的每趟排序在待排序列中选取一个数为基准,将序列划分为两段,一段的值比基准值小,另一段大于或等于基准值。

第8题:

有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)
  } //算法结束

第9题:

冒泡排序算法关键字比较的次数与记录的初始排列次序无关


正确答案:错误

第10题:

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


正确答案:15

更多相关问题