問1:得到最大或最小的話,比較次數?
n-1
問2:同時的到最大最小,比較次數?
奇數:3
⌊n/2⌋
偶數:1+3(n-2)/2
附上**:
public static void main(string args) ;
system.out.println(minmax(a));
} //同時取最大最小
public static string minmax(int a)
if(min2 < min)
} if(a.length%2==1)
if(a[a.length-1]
問3:求乙個陣列最小和第二小的演算法,最壞情況下,比較次數為n+⌈lgn⌉-2
public class minmax ;
static int map = new int[a.length][a.length];
static int minindex = 0;
static int minindex2 = 0;
public static void main(string args)
public static void findmin1(int index,int bucketindex);
for(int i=1;i<=a.length;i++)
}static int minwhich(int a,int p,int r,int i)
int k = randomselect(a, p, r);//
int index = k-p+1;//子陣列中的排名
if(i==index)else if( i
最大最小值
示例一 maximum lambda x,y x y x x y y 注意 x y 返回的是0或者1 minimum lambda x,y x y y x y x a 10 b 20 print the largar one is d maximum a,b print the lower one ...
最大值 最小值
求最大最小的時候有點小技巧,就是我們兩個兩個的比較,把大個跟當前最大比較,小的跟當前最小的比較,這樣就會節約一點比較時間,有原來的2 n到3 n 2。include include 得到最大最小值 int getmaxmin int ndata,int nlen,int pnmax,int pnmi...
最大最小值演算法
inputiterator min element inputiterator beg,inputiterator end inputiterator min element inputiterator beg,inputiterator end,compfunc op inputiterator ...