#include using namespace std;
#include //分治思想求陣列最大最小值
void maxandmin(int* a,int start,int end,int &max,int &min)
else
return;
}int rightmax=0;
int rightmin=0;
int leftmax=0;
int leftmin=0;
maxandmin(a,start,(start+end)/2,leftmax,leftmin);
maxandmin(a,(start+end)/2+1,end,rightmax,rightmin);
max = (rightmax > leftmax) ? rightmax : leftmax;
min = (leftmin < rightmin) ? leftmin : rightmin;
}//暴力方法
void maxandmin2(int *a,int len,int &max,int &min)
}// 遍歷一遍陣列使得下標為偶數的元素較下標為奇數的元素大,再分別求出最大值和最小值
//比較次數為3*n/2次
void maxandmin3(int *a,int len,int &max,int &min)}}
//void maxandmin4(int *a,int len,int &max,int &min)
if(len == 2)}//
if(a[0] > a[1])
else
for(int i(2);ia[i+1])
if(min > a[i+1])
}else if(i+1 < len && a[i] < a[i+1])
if(min > a[i])
}else
if(min > a[i])}}
}}
int main()
;int max=0;
int min =0;
maxandmin(a,0,9,max,min);
cout<<"max="
cout<<"max="
cout<<"max="
cout<<"max="
}
程式設計之美(陣列求最大最小值的集中方法)
include using namespace std include 分治思想求陣列最大最小值 void maxandmin int a,int start,int end,int max,int min else return int rightmax 0 int rightmin 0 int ...
最大值與最小值 程式設計之美2 10
1.求各元素為正整數的乙個陣列序列中的最小值 int min const unsigned int array,int length unsigned int minvalue array 0 for int i 1 i length i return minvalue 2.求各元素為正整數的乙個陣...
程式設計之美 尋找陣列中的最大值和最小值
尋找乙個陣列裡的最大值和最小值 法一 分別遍歷一遍,次數o 2 n 法二 根據書上的講述,法三 主要在法二的基礎上改進,法二改變了原陣列,法三主要是不改變原陣列,定義兩個變數max和min,分別儲存最大值和最小值。法四 分治法,這是重點。typedef struct ivaluetype ivalu...