//上机实验题4 -- 求序列的最大元素和次大元素
#include<stdio.h>
void SecondElement(int a[],int low,int high,int &max,int &sec){ //
int mid;
int x1,x2,x3,x4;
if(high - low < 1){ //数组中少于两个元素
return;
}
else if(high - low == 1){ //数组中只有两个元素
if(a[low] < a[high]){
max = a[high];
sec = a[low];
}
else{
max = a[low];
sec = a[high];
}
}
else{
mid = (high - low)/2;
SecondElement(a,low,mid,x1,x2);
SecondElement(a,mid+1,high,x3,x4);
if(x1 < x3){
max = x3;
if(x1 > x4)
sec = x1;
else
sec = x4;
}
else{
max = x1;
if(x3 > x2)
sec = x3;
else
sec = x2;
}
}
}
int main(){
int a[] = {1,2,3,4,5,6,7,8,9,10,11};
int n = 11;
int max,sec;
SecondElement(a,0,n-1,max,sec);
printf("最大元素 = %d,次大元素 = %d\n",max,sec);
}