public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int[] array = new int[10];
for (int i = 0; i < array.length; i++) {
array[i] = Integer.parseInt(reader.readLine());
}
sort(array);
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
System.out.println(array[3]);
System.out.println(array[4]);
}
public static void sort(int[] array) {
//напишите тут ваш код
int x;
for (int i = 0; i < array.length ; i++) {
x =0;
for (int j = array.length-1; j >=0 ; j--) {
if(array[i]<array[j]) {
x = array[j];
array[j]=array[i];
array[i]=x;
}
}
}
}
}
Dmitriy
23 уровень
Подскажите: почему при такой сортировке самое больше число не входит в вывод результата???
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Dmitriy
16 октября 2020, 09:33
вывел весь массив, самое большое число вообще оказалось самым последним
0
hidden #2322530
16 октября 2020, 09:44
попробуй так, таким образом каждый раз поиск ведется только среди оставшихся (не отсортированных) чисел
смотри примерно как работает твой алгоритм:
из-за того что array[i] всегда пытается стать максимальным, а так как j >= 0 ты всегда ищешь максимум среди всего массива.
+2
Dmitriy
16 октября 2020, 10:11
то есть в первой итерации цикла на [0] все таки встает самое большое число?а дальше просто не надо с ним сравнивать, а работать до этой позиции в массиве?
0
hidden #2322530
16 октября 2020, 10:16решение
да. я написал же условие. чтобы всегда сравнивать все числа кроме тех что ты уже отсортировал, и числа array[i] (смысл самого с собой сравнивать)
+3
Dmitriy
16 октября 2020, 10:16
спасибо за подсказку!
0