4 找最大与最小元素.docVIP

  • 52
  • 0
  • 约2.66万字
  • 约 18页
  • 2019-03-18 发布于江苏
  • 举报
4 找最大和最小元素 如果要在含有n个不同元素的集合中同时找出它的最大和最小元素(元素类型为elemType,可比较大小),最简单的方法是将元素逐个进行比较。这种直接算法可初步描述如下。 算法4.1 直接找最大和最小元素 void StraitMaxMin(elemType a[],int n,elemType Max,elemType Min) { // 将A(1:n)中的最大元素置于max中,最小元素置于min中。 int i; Max=Min=a[1]; For(i=2;i=n;++i) { if(a[i]max) Max=a[i]; if(a[i]max) Min=a[i]; };//for }// StraitMaxMin 分析这个算法的时间复杂度时,只需将元素比较次数求出即可。这不仅是因为算法中的其它运算与元素比较有相同数量级的频率计数,而且更重要的是,当A(l:n)中的元素是多项式、向量、非常大的数或字符串时,一次元素比较所用的时间比其它运算的时间多得多。 容易看出过程StraitMaxMin在最好、平均和最坏情况下均需要作2(n-l)次元素比较。另外,只要考察一下算法4.1就可发现,只有当A(i)max为假时,才有必要比较A(i)min,因此,可用下面的语句代替for循环中的语句: if(a[i]max) Max=a[i]; else if(a[i]Min) Min

文档评论(0)

1亿VIP精品文档

相关文档