<p>老板有一袋金块(共n块,n是2的幂(n≥2)),最优秀的雇员得到其中最重的一块,最差的雇员得到其中最轻的一块。假设有一台比较重量的仪器,希望用最少的比较次数找出最重和最轻的金块。并对自己的程序进行复杂性分析。</p> public class MaxMinGold { public void search_Max_Min(int gold [],int a[],int left,int right){ int [] l = new int[2]; int [] r = new int[2]; if(left == right){ a[0] = a[1] = gold[left]; } if(right -left ==1){ if(gold[left] > gold[right]){ a[0] = gold[right]; a[1] = gold[left]; }else{ a[0] = gold[left]; a[1] = gold[right]; } } if(right - left > 1){ int mid = (left + right)/2; search_Max_Min(gold,l, left, mid); search_Max_Min(gold,r, mid, right);