题目:
本题要求实现一个函数,求N个集合元素S[]中的最大值,其中集合元素的类型为自定义的ElementType。
函数接口定义:
ElementType Max( ElementType S[], int N );
其中给定集合元素存放在数组S[]中,正整数N是数组元素个数。该函数须返回N个S[]元素中的最大值,其值也必须是ElementType类型。
解答:
我一直在思考,如何尽量不使用多余的变量,避免多余的步骤,来实现代码
尽量不使用多余的变量,就是避免使用for循环,而采用while循环
尽量避免多余的步骤,就是要避免循环中的无意义操作,减少循环次数
基于这个思路,我的代码如下:
ElementType Max( ElementType S[], int N )
{
// 1. max 赋值为数组最后一个元素; 2. N减一
ElementType max = S[--N];
// 从 (原始的)N - 1 开始往后循环
while (N--)
// S[N] 从 倒数第二个数开始与 max 比较
if (S[N] > max)
max = S[N];
return max;
}