1234567891011121314151617181920212223242526272829#include
最大值与最后一个交换,需要使用到max 和a[i],以及一个临时变量,代码中使用的是max a[0] a[i],这里貌似有点问题。最小值与第一个交换,貌似你也是用的这3个变量。
如果觉得使用的变量过多,可以不使用临时变量,用嵌入式程序员的思路,节约空间复杂度,只使用max 和 a[i]两个变量就地进行值的交换
在两个 if 语句内改成
max = max + a[i];
a[i] = max - a[i];
max = max - a[i];
如果担心两数和超出范围可以用^异或操作
改成
max = max ^ a[i];
a[i] = a[i] ^ max;
max = max ^ a[i];
这样就不用担心两整数的和超出表示范围了。
下面的min的操作也与以上内容类似。
改成
min = min ^ a[0];
a[0] = a[0] ^ min
min = min ^ [a0]