åæ¶è·åæ°ç»ä¸çæ大å¼åæå°å¼
æ¾å°ä¸ä¸ªæ°ç»ä¸æ大å¼ä¸è¬ç¨å¦ä¸æ¹æ³ï¼é¦å
æ¿åºæ°ç»ä¸ç¬¬ä¸ä¸ªå¼ä½ä¸ºå½åçæ大å¼ï¼ç¶åä¾æ¬¡ååé¢ææçå¼æ¯è¾ï¼åç°ææ¯å½åæ大å¼è¿å¤§çå°±æ´æ°æ大å¼çè®°å½ï¼
[cpp] view plain copy
int maximum(int *arr, int size)
{
int i;
int max = arr[0];
for (i = 1; i < size; i++)
{
if (max < arr[i]) max = arr[i];
}
return max;
}
åçï¼æå°å¼ä¹æ¯è¿ä¹å¤æï¼
[cpp] view plain copy
int minimum(int *arr, int size)
{
int i;
int min = arr[0];
for (i = 1; i < size; i++)
{
if (min > arr[i]) min = arr[i];
}
return min;
}
æ 论æ¯æ±æ大å¼è¿æ¯æå°å¼é½è¿è¡äºn-1次æ¯è¾ï¼é£ä¹åæ¶æ±æ大å¼æ¯å¦éè¦å¤æ2n-2次å¢ï¼
ç®æ³å¯¼è®ºç¬¬ä¹ç« ç»åºäºä¸ä¸ªç»è®ºï¼æå¤åªéè¦æ¯è¾3+n-2次æ¯è¾å°±å¯ä»¥å®æï¼å 为æ们å¯ä»¥ä»æ°ç»ä¸ä¸æ¬¡å两个æ°æ®ï¼å
å°è¿ä¸¤ä¸ªæ°æ®è¿è¡æ¯è¾ï¼ç¶åæå
¶ä¸å¤§çä¸æ大å¼è®°å½æ¯è¾ï¼å°çä¸æå°å¼è®°å½æ¯è¾å³å¯ï¼å 为ååºç两个æ°æ®ä¸çå°çå¼ä¸å¯è½è¿ä¼æ为æ大å¼ã
[cpp] view plain copy
void getRange(int *arr, int size, int *max, int *min)
{
int *p = arr, *endp = arr + size;
if (size % 2 != 0)
{
*max = *min = *p++;
}
else
{
if (*p > *(p + 1))
{
*max = *p;
*min = *(p + 1);
}
else
{
*max = *(p + 1);
*min = *p;
}
p += 2;
}
while (p != endp)
{
if (*p > *(p + 1))
{
if (*p > *max) *max = *p;
if (*(p + 1) < *min) *min = *(p + 1);
}
else
{
if (*(p + 1) > *max) *max = *(p + 1);
if (*(p) < *min) *min = *p;
}
p += 2;
}
}
温馨提示:答案为网友推荐,仅供参考