JavaRush/Java блог/Архив info.javarush/Кухня(); Задание N61
terranum
28 уровень

Кухня(); Задание N61

Статья из группы Архив info.javarush
участников
Кухня(); Задание N61 - 1 Правила [Одномерные массивы] 61. В массиве А каждый элемент равен 0, 1, 2. Переставить элементы массива так, чтобы сначала располагались все нули, затем все единицы, и, наконец все двойки.
Комментарии (3)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Docktor91
Уровень 40
29 сентября 2014, 13:02

public static int[] someMethod(int... arr)
{
    int[] temp = new int[arr.length];
    int i = temp.length - 1;
    int j = temp.length - 1;
    for (int x : arr)
    {
        if (x == 2)
        {
            temp[i--] = temp[j];
            temp[j--] = x;
        }else if (x == 1)
        {
            temp[i--] = x;
        }
    }
    return temp;
   
}
Airon
Уровень 34
29 сентября 2014, 11:02
Пока идея для сортировки лишь 3 элементов понравилась от Docktor91 из кухня50
public static int[] sort(int... array) {
    int[] temp = new int[array.length];
    Arrays.fill(temp, 1);
    int i = 0, j = temp.length - 1;
    for(int x : array)
        if (x < 1)
        temp[i++] = x;
    else if(x > 1)
        temp[j--] = x;
    return temp;
}
Airon
Уровень 34
29 сентября 2014, 12:25
Все же лучше будет убрать эту строку
Arrays.fill(temp, 1);

и вставить перед return
Arrays.fill(temp, i, ++j, 1);