2014-09-26 4 views
-2

В принципе, у меня есть 54-элементный одномерный массив, который я хочу быстро разбить на двумерный массив, содержащий 20 очень специфических подмассивов исходного массива (и упорядоченный правильно).Сортировка массива в под-массивы на основе индекса в 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} ...} многомерный массив подмассивов ввода array

В настоящее время я жестко кодирую подмассивы, но это утомительно и медленно. Любые идеи о том, как достичь этого?

+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 
}