数据结构:比较数组中最大最小值且比较次数小于2n-3次能给出点代码吗?
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/12 03:40:29
数据结构:比较数组中最大最小值且比较次数小于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
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
(数据结构试题) 设有1000个元素,用二分法查找时,最大比较次数是
首先输入一个大于2且小于10的整数n,然后定义一个二维整形数组(n*n),初始化该数组,将数组中最大元素所在的行和最小元
数据结构 有会的吗 从有序表(12,18,30,43,56,78,82,95)中折半查找43时,其比较次数为_____多
我们知道:因为4小于5,所以4的n次方小于5的n次方(n是正整数).你能比较2的100次方与3的75次方的大小吗?
输入一个大于2且小于10的整数n,定义一个二维整形数组(n*n),初始化该数组,将数最大元素与最小元对调.
EXCEL中如何去掉最大最小值,剩余数值于另一个值比较,然后统计大于或小于该数字的原数据个数
在n*m的数组中,如何用matlab找出最大最小值 并且能求到最大最小值所对应的下标呢?
LabVIEW中一个数组里面的数怎么与常数比较,当大于这个常数时输出常数,小于常数时输出数组里面的数
在pascal语言中,如何在一个数组中选取5个数,使其之和最大且小于某数?
有助于回答者给出准解不等式:ab>0,且a不等于b,试比较3次根号下a减3次根号下b与3次根号下(a-b)的大小确的答案
数据结构判断题,比较急
求最大正整数N,是3的1024次幂减去1能被2的N次幂整除