package com.javarush.task.task07.task0728;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
В убывающем порядке
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int[] array = new int[20];
for (int i = 0; i < 20; i++) {
array[i] = Integer.parseInt(reader.readLine());
}
sort(array);
}
public static void sort(int[] array) {
ArrayList<Integer> arraymin = new ArrayList<Integer>();
for (int i = 0; i < 20; i++) {
arraymin.add(array[i]);
}
for (int a = 19; a > -1; a--) {
//int a = 19;
for (int i = 0; i < a; i++) {
int min = arraymin.get(a);
if (min > arraymin.get(i)) {
arraymin.add(a+1, arraymin.get(i));
arraymin.remove(i);
}
}
}
for (int i = 0; i < arraymin.size(); i++) {
System.out.println(arraymin.get(i));}
}
}
Александр
32 уровень
сортировку выполняет, на печать выводит, но не проходит последний пункт.
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Александр
20 августа 2019, 18:21
Спасибо, уважаемый Александр))) Исправил. Ошибка была в том, что во вложенном цикле я переносил i на следующее значение вне зависимости от результата сравнения. Поправил. Потом, правда все равно валидатор ругался, но я уже знал, что это из-за вывода на печать arraylist а не простого массива.
0
АлександрExpert
19 августа 2019, 19:54
Странный алгоритм сортировки. Почитай про сортировку на вики, там есть примеры кода.
Если я правильно понимаю (не тестил код), если у тебя в массиве первыми элементами будет идти например 2, 1, то при первой итерации цикла 2 уйдет назад, а единица передвинется на 0 индекс, а при второй итерации цикла ты единицу будешь сверять не с последним элементом листа, а с предпоследним, таким образом единица уже никак в конец не попадет, и сортировка получается не правильная.
Все-таки запустил твой код вот с таким набором числе:
2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15, 18, 17, 20, 19
Вывод:
20, 19, 17, 18, 15, 16, 13, 14, 11, 12, 9, 10, 7, 8, 5, 6, 3, 4, 1, 2
0
Владислав Шаповал
19 августа 2019, 19:29
Прикрепи нормальный код с условиями задачи.
0