2017-11-18 1 views
0

어떻게 테이블의 절반 만 뒤집을 수 있습니까? 예 : 나는 TAB = {1,2,3,4,5,6}을 가지고 있으며 TAB2 : {1,2,3,6,5,4}를 얻고 싶습니다.탭의 반만 반전시키는 방법은 무엇입니까?

지금,이 같은 모든 탭을 REVERS :

int tmpl; 
    int l = tab2.length; 
    int pol = l/2; 

    for (int i = 0; i <= pol; i++){ 
     tmpl = tab2[i]; 
     tab2[i] = tab2[l-1-i]; 
     tab2[l-1-i] = tmpl; 
    } 
+0

'l-1'에서 루프를 시작하고 끝까지 반복하십시오. – QBrute

답변

1

각 절반을 두 개의 배열을 확인합니다.

public static int[] splitArray(int start, int end, int[] array) 
{ 
    int[] newArray = new int[array.length/2]; 
    int j = 0; 
    for (int i = start; i < end; i++) 
    { 
     newArray[j] = array[i]; 
     j++; 

    } 
    return newArray; 
} 

배열을 뒤집는 방법이 있습니다. 각 배열을 전달하십시오.

public static int[] reverseArray(int[] array) 
{ 
    int[] newArray = new int[array.length]; 
    int j = 0; 
    for (int i = array.length - 1; i >= 0; i--) 
    { 
     newArray[j] = array[i]; 
     j++; 
    } 
    return newArray; 
} 

이제 두 개의 배열을 결합하십시오.

public static int[] combineArrays(int[] array1, int[] array2) 
{ 
    int j = 0; 
    int[] combinedArray = new int[array1.length + array2.length]; 
    for (int i = 0; i < array1.length; i++) 
    { 
     combinedArray[j] = array1[i]; 
     j++; 
    } 
    for (int i = 0; i < array2.length; i++) 
    { 
     combinedArray[j] = array2[i]; 
     j++; 
    } 
    return combinedArray; 
} 

기본 방법이 어떻게 표시되는지.

public static void main(String[] args) 
{ 
    int[] TAB = { 1, 2, 3, 4, 5, 6 }; 
    int[] split1 = splitArray(0, TAB.length/2, TAB); 
    int[] split2 = splitArray(TAB.length/2, TAB.length, TAB); 
    split1 = reverseArray(split1); 
    split2 = reverseArray(split2); 
    int[] TAB2 = combineArrays(split1, split2); 
    for (int i = 0; i < TAB2.length; i++) 
    { 
     System.out.println(TAB2[i]); 
    } 


} 
관련 문제