[C++] C语言求数组的最大值和最小值 →→→→→进入此内容的聊天室

来自 , 2020-07-21, 写在 C++, 查看 166 次.
URL http://www.code666.cn/view/967edfdc
  1.  
  2. // 求数组的最大值和最小值,返回值在maxValue和minValue
  3. void MaxandMin(int *a, int l, int r, int& maxValue, int& minValue)
  4. {
  5.     if(l == r) // l与r之间只有一个元素
  6.     {
  7.         maxValue = a[l] ;
  8.         minValue = a[l] ;
  9.         return ;
  10.     }
  11.        
  12.     if(l + 1 == r) // l与r之间只有两个元素
  13.     {
  14.         if(a[l] >= a[r])
  15.         {
  16.             maxValue = a[l] ;
  17.             minValue = a[r] ;
  18.         }
  19.         else
  20.         {
  21.             maxValue = a[r] ;
  22.             minValue = a[l] ;
  23.         }
  24.         return ;
  25.     }
  26.        
  27.     int m = (l + r) / 2 ; // 求中点
  28.  
  29.        
  30.     int lmax ; // 左半部份最大值
  31.     int lmin ; // 左半部份最小值
  32.     MaxandMin(a, l, m, lmax, lmin) ; // 递归计算左半部份
  33.        
  34.     int rmax ; // 右半部份最大值
  35.     int rmin ; // 右半部份最小值
  36.     MaxandMin(a, m + 1, r, rmax, rmin) ; // 递归计算右半部份
  37.        
  38.     maxValue = max(lmax, rmax) ; // 总的最大值
  39.     minValue = min(lmin, rmin) ; // 总的最小值
  40. }
  41.  
  42.  
  43. //cpp/8763

回复 "C语言求数组的最大值和最小值"

这儿你可以回复上面这条便签

captcha