將一個數組分割成儘量均衡的2個數組(java)
要考慮到2種情況
1、原始陣列長度為偶數---------則,分成的2個數組長度一樣
2、原始陣列長度為奇數--------則,2個數組中,有一個數組多1個
完整程式碼如下:
package text;public class Text {
public static void main(String[] args) {
//第一步:建立一個示例陣列,長度假設為101
int[] first0=new int[101];
//第二步:依次將1-101放入陣列
for(int i=0;i<first0.length;i++){
first0[i]=i+1;
}
//第三步:獲取示例陣列長度
int FLength=first0.length;
//第四步:假設分成的兩個陣列長度分別為half1和half2
int half1=1;
int half2=1;
//判斷:假如示例陣列長度為奇數,則後兩個陣列中第一個陣列多一個
if(FLength%2!=0){
half1=(FLength+1)/2;
half2=half1-1;
}
//判斷:假如示例陣列元素個數為偶數,則結果的2個數組長度一致
if(FLength%2==0){
half1=FLength/2;
half2=half1;
}
//第五步:新建結果陣列
int left[]=new int[half1];
int right[]=new int[half2];
//第六步:分不同情況,將原始示例陣列的前半部分和後半部分分別裝入結果陣列中
if(FLength%2!=0){
for(int i=0;i<half1;i++){
left[i]=first0[i];
}
for(int i=half1,j=0;i<first0.length;i++,j++){
right[j]=first0[i];
}
}else{
for(int i=0;i<half1;i++){
left[i]=first0[i];
}
for(int i=half1,j=0;i<first0.length;i++,j++){
right[j]=first0[i];
}
}
//第七部:輸出結果陣列,檢查是否與預期結果一致
for(int i=0;i<left.length;i++){
System.out.print(left[i]+",");
}
System.out.println();
for(int i=0;i<right.length;i++){
System.out.print(right[i]+",");
}
}
}