2014-09-26 2 views
-2

기본적으로 원본 배열의 20 개의 매우 특정한 하위 배열을 포함하는 2 차원 배열로 빠르게 분할하려는 54 요소 단일 차원 배열이 있습니다.배열을 Java의 인덱스를 기반으로 하위 배열로 정렬

원래 배열의 인덱스로 I/O의 정수를 고려하십시오.

입력 : {0,1,2,3,4,5,6,7,8,9} ...... (53) (54 개) 요소

출력 포함하는 어레이 {{0,9을 , 51}, {1,52}, {2,17, 53}, {3,10}, {5,16}, {6,11,12} ...} 입력의 서브 배열 인 의 다차원 배열 배열

현재 하위 배열을 하드 코딩하고 있지만 지루하고 느립니다. 이것을 달성하는 방법에 대한 아이디어가 있습니까?

+4

하위 배열에 어떤 무늬도 보이지 않습니다. 규칙은 무엇입니까? – qbit

+1

요소를 분할하는 기준은 무엇입니까? 해당 기준을 구현하기 위해 일부 코드를 시도한 경우 질문에 추가하십시오. – Renjith

+0

그건 사실입니다. 분명한 패턴이 없습니다. 원래 배열은 rubiks 큐브를 나타내고 하위 배열은 큐브의 개별 큐브를 나타냅니다. – aslangfo

답변

0

다음 작업을 수행 할 수 있습니다. 서브 어레이를 직접 초기화한다고 가정합니다. 그러나 하위 배열의 정렬은 다음과 같이 간단해야합니다.

public static void main(String[] args) { 

    // Initialize your original array 
    int[] original = new int[54]; 

    // Create a master array containing 20 sub-arrays 
    int[][] array = new int[20][]; 

    // sub array 
    array[0] = new int[3]; // and populate the sub-array values 
    array[1] = new int[2]; // and populate the sub-array values 
    // . 
    // . 
    // . 

    // Iterate over the sub arrays and sort the numbers 
    for (int[] subarray : array) { 
     Arrays.sort(subarray); 
    } 
    // At this point you've achieved what you wanted 
} 
관련 문제