算法设计分析课后习题.docVIP

  • 46
  • 0
  • 约2.96万字
  • 约 55页
  • 2015-08-07 发布于安徽
  • 举报
4.1:在我们所了解的早期排序算法之中有一种叫做Maxsort的算法。它的工作流程如下:首先在未排序序列(初始时为整个序列)中选择其中最大的元素max,然后将该元素同未排序序列中的最后一个元素交换。这时,max元素就包含在由每次的最大元素组成的已排序序列之中了,也就说这时的max已经不在未排序序列之中了。重复上述过程直到完成整个序列的排序。 (a) 写出Maxsort算法。其中待排序序列为E,含有n个元素,脚标为范围为。 void Maxsort(Element[] E) { int maxID = 0; for (int i=E.length; i1; i--) { for (int j=0; ji; j++) { if (E[j] E[maxID]) maxID = k; } E[i] -- E[maxID]; } } (b) 说明在最坏情况下和平均情况下上述算法的比较次数。 最坏情况同平均情况是相同的都是。 4.2:在以下的几个练习中我们研究一种叫做“冒泡排序”的排序算法。该算法通过连续几遍浏览序列实现。排序策略是顺序比较相邻元素,如果这两个元素未排序则交换这两个元素的位置。也就说,首先比较第一个元素和第二个元素,如果第一个元素大于第二个元素,这交换这两个元素的位置;然后比较第二

文档评论(0)

1亿VIP精品文档

相关文档