已知序列{17,18,60,40,7,32,73,65,85},请给出采用冒泡排序法对该序列作升序排序时的每一趟的结果。

题目
问答题
已知序列{17,18,60,40,7,32,73,65,85},请给出采用冒泡排序法对该序列作升序排序时的每一趟的结果。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

第2题:

以下冒泡法程序对存放在a[1],a[2],……,a[n]中的序列进行冒泡排序完成程序中的空格部分,其中n是元素个数,要求按升序排列。
(1)j<=n-1
(2)i<=n-j
(3)a[i]=a[i+1]
(4)a[i+1]=temp
(5)当某趟冒泡中没有出现交换则已排好序结束循环。

第3题:

已知序列{11,19,5,4,7,13,2,10}(1)试给出用归并排序法对该序列作升序排序时的每一趟的结果。(2)对上述序列用堆排序的方法建立初始堆(要求小根堆,以二叉树描述建堆过程)。


参考答案:(1) 初始 11,19,5,4,7,13,2,10
第一趟 [ 11,19][4,5][7,13][2,10]
第二趟 [4,5,11,19][2,7,10,,13]
第三趟 [2,4,5,7,11,10,11,13](2)

第4题:

序列12,10,13,11,16,14,采用冒泡排序算法,经一趟冒泡后,序列的结果是()


正确答案:10,12,11,13,14,16

第5题:

已知序列(70,83,100,105,10,32,7,9),请写出对此序列采用插入排序法进行升序排序时各趟的结果。
原始序列:(70),83,100,65,10,32,7,9
第1趟:(70,83),100,65,10,32,7,9
第2趟:(70,83,100),65,10,32,7,9
第3趟:(65,70,83,100),10,32,7,9
第4趟:(10,65,70,83,100),32,7,9
第5趟:(10,32,65,70,83,100),7,9
第6趟:(7,10,32,65,70,83,100),9
第7趟:(7,9,10,32,65,70,83,100)

第6题:

已知序列{17,18,60,40,7,32,73,65,85},采用冒泡排序法对该序列作降序排序时,第4趟的结果是【 】。


正确答案:60407365853218177
60,40,73,65,85,32,18,17,7 解析:冒泡排序法的算法基本思想是:通过无序区中相邻记录关键字间的比较和位置交换,使关键字最小的记录如气泡一般逐渐往上“漂浮”直至“水面”。整个算法是从最下面的记录开始,对每两个相邻的关键字进行比较,且使关键字较小的记录换至关键字较大的记录之前,使得经过一趟冒泡排序后,关键字最小的记录达到最上端,接着,再在剩下的记录中找关键字最小的记录,并把它换在第二个位置上。依此类推,一直到所有记录都有序为止。根据这种思想,每趟的排序结果如下:
初始:17,18,60;40,7,32,73,65,85
第一趟18,60,40,17,32,73,65,85,7
第二趟60,40,18,32,73,65,85,17,7
第三趟60,40,32,73,65,85,18,17,7
第四趟60,40,73,65,85,32,18,17,7
第五趟60,73,65,85,40,32,18,17,7
第六趟73,65,85,60,40,32,18,17,7
第七趟73,85,65,60,40,32,18,17,7
第八趟85,73,65,60,40,32,18,17,7

第7题:

排序过程中,每一趟从无序子表中将一个待排序的记录按其关键字的大小放置到已经排好序的子序列的适当位置,直到全部排好序为止,该排序算法是()。

A直接插入排序

B快速排序

C冒泡排序

D选择排序


A

第8题:

已知序列(15,18,60,41,6,32,83,75,95),请给出采用冒泡法对该序列作升序排序时的每一趟的结果.


正确答案:

结果如下:
初始序列:15  18  60   41    6     32    83  75   95
第一趟:   15  18   41   6     32    60    75  83   95
第二趟:   15  18    6    32   41    60    75  83   95
第三趟:   15    6   18   32   41    60    75  83   95
第四趟:   6   15   18   32    41   60    75  83   95
第五趟:    6   15   18   32    41   60    75  83   95

第9题:

序列4 ,2 ,5 ,3 ,8 ,6 ,7,9,采用归并排序算法(升序),经一趟归并后,序列的结果()。


正确答案:2,4,3,5,6,8,7,9

第10题:

序列4,2,5,3,8,6,采用冒泡排序算法(升序),经一趟冒泡后,结果序列是()。


正确答案:2,4,3,5,6,8

更多相关问题