演算法陣列中的最大值和最小值
方法1:遍歷兩次求出最大值最小值 ,時間複雜度n*2
方法2:相鄰兩個數分為一組比較,大的放在偶數字,小的放到奇數字,然後在偶數字上找到最大值,在奇數字上找到最小值n*1.5
方法3:定義兩個變數max,min值,相鄰兩個數分為一組,比較出最大值和最小值,最大值和max比較,是否大於max,如果大於賦值於max,最小值和min比較,是否小於min,如果小於賦值於min
方法4:遞迴方法,分別求出前後n/2個數的min和max
**:(max,min)search(arr, b, e)
{ if(e-b<=1)
{ if(arr[b]maxr)
maxv=maxl;
else
maxv=maxr;
if(minl
擴充套件:求n個陣列中,第二大的數:分別求出前後n/2中的最大值,比較返回較小的那個
求陣列的最大值與最小值
方法1 通過迴圈查詢陣列的最大值和最小值 minn a 0 maxx a 0 for int j 0 j i j 方法2 利用c 自帶的函式 max element 和 min element include include using namespace std intmain cout max ...
求陣列的最大值和最小值
求陣列的最大最小值,可以遍歷一遍陣列,然後分別記錄最大值和最小值,這種方法需要的比較次數為2n次。如果想要減少比較次數,可以採用的方法是遍歷陣列,然後比較相鄰元素,把相鄰元素的較大值放在後面,較小的放在前面。在從較大值中選取最大值即為整個陣列的最大值,從較小值中選取最小值即為整個陣列的最小值。這時,...
求陣列中的最大值和最小值
方法1 暴力方法 遍歷一遍陣列,比較2 n次求出最大值和最小值 方法2 改進方法 破壞了原陣列 遍歷一遍陣列使得下標為偶數的元素較下標為奇數的元素大,再分別求出最大值和最小值 比較次數為3 n 2次 方法3 改進方法 不破壞原陣列 遍歷一遍陣列將相鄰元素中較大值和nmax比較,將較小值和nmin比較...