2020-wfx-第3章-分治法-3-查找-最大和次大元.pptxVIP

  • 14
  • 0
  • 约2.04千字
  • 约 20页
  • 2024-06-04 发布于四川
  • 举报

2020-wfx-第3章-分治法-3-查找-最大和次大元.pptx

;;3.3求解查找问题——查找最大和次大元;【问题描述】对于给定的含有n元素的无序序列,求这个序列中最大和次大的两个不同的元素。

例如:(2,5,1,4,6,3)

最大元素为6,次大元素为5;;【问题求解】对于无序序列a[low..high]中,采用分治法求最大元素max1和次大元素max2的过程如下:

(1)a[low..high]中只有一个元素:

则max1=a[low],max2=-INF(-∞)(要求它们是不同的元素)。

(2)a[low..high]中只有两个元素:则

max1=MAX{a[low],a[high]};

max2=MIN{a[low],a[high]};;(3)a[low..high]中有两个以上元素:按中间位置mid=(low+high)/2划分为a[low..mid]和a[mid+1..high]左右两个区间(注意左区间包含a[mid]元素)。

求出左区间最大元素lmax1和次大元素lmax2,求出右区间最大元素rmax1和次大元素rmax2。

合并:

若lmax1rmax1,则

max1=lmax1,max2=MAX{lmax2,rmax1};

否则

max1=rmax1,max2=MAX{lmax1,rmax2

文档评论(0)

1亿VIP精品文档

相关文档