作业帮 > 综合 > 作业

数据结构:比较数组中最大最小值且比较次数小于2n-3次能给出点代码吗?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 04:39:41
数据结构:比较数组中最大最小值且比较次数小于2n-3次能给出点代码吗?
float a[N];
void MaxMin(int i,int j,float &fmax,float &fmin)
{ // 递归算法,i 区间低位下标、j 区间高位下标
float lmax,lmin,rmax,rmin;
if (i == j) // 1个元素
{ fmax = a[i]; fmin = a[i]; }
else if (i == j - 1) // 2个元素
if (a[i] < a[j])
{ fmax = a[j]; fmin = a[i]; }
else
{ fmax = a[i]; fmin = a[j]; }
else
{ // 区间长度大于2,递归分解
int mid = (i + j) / 2; // 中点
MaxMin(i,mid,lmax,lmin); // 左半
MaxMin(mid + 1,j,rmax,rmin); // 右半
if (lmax > rmax)
fmax = lmax;
else
fmax = rmax;
if (lmin > rmin)
fmin = rmin;
else
fmin = lmin;
}
}
再问: 你好,非常的感谢你。昨天就是你解答的。我们老师讲的好像是先两两比较出最大值,最小值(i