Входные данные: 4 -6 2 3 -8
Решение ниже отработало только при условии: if(count > nums.size()+1) break;
Мне кажется было бы достаточно: if(count >= nums.size()) break; но в таком случае не сравниваются -6 и -8
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<Integer> nums = new ArrayList<>();
//напишите тут ваш код
int count = 0;
for (int i = 0; i < 5; i++) {
nums.add(Integer.parseInt(reader.readLine()));
}
while (true) {
for (int i = 0; i < nums.size()-1; i++) {
// System.out.println("in " + nums.get(i) +" и "+ nums.get(i+1));
if (nums.get(i) > nums.get(i+1)) replace (nums,i,i+1);
else count++;
// System.out.println("out " + nums.get(i) +" и "+ nums.get(i+1));
}
if(count > nums.size()+1) break;
}
for (int x: nums) {
System.out.println(x);
}
}
public static ArrayList<Integer> replace (ArrayList<Integer> list, int a, int b) {
int res = list.get(a);
list.set(a,list.get(b));
list.set(b,res);
return list;
}
}