看看写了个 ,实现不需数组长度一致,复杂度O(n^2),求好的算法
/** arr1={1,2,3};
* arr2={22,33,44,55};
* 交换两个矩阵数据
*/
public void exchange(){
int index=0;
int len=arr1.length;
int currMinus=getMinus();
while(true){
for (int i = 0; i < arr2.length; i++) {
echangeMatrix(index,i);//交换值
if(currMinus>getMinus()){
currMinus=getMinus();//一次循环中找到最小minus的
}else {
echangeMatrix(index,i);//若不是则不交换,即再换同一位置一次
}
}
index++;
if(index>=len){
break;
}
}
}
private void echangeMatrix(int index,int des){
int temp=0;
temp=arr1[index];
arr1[index]=arr2[des];
arr2[des]=temp;
}
/**计算和
* ryuuninbou
* @return int
*/
private int getMinus(){
int sum1=0;
int sum2=0;
for (int i = 0; i < arr1.length; i++) {
sum1+=arr1[i];
}
for (int i = 0; i < arr2.length; i++) {
sum2+=arr2[i];
}
return Math.abs(sum1-sum2);
}