Задачи на алгоритмы Java
1. Debug сортировки пузырьком.
- Создать табличку для любого массива, в котором последовательно прописать значения
i
,j
, массива для каждого цикла алгоритма сортировки пузырька. - Используйте debugger.
- Например, для массива 0 2 5 3 4:
Шаги дебага i j Значение массива Выполнился ли блок if? 0 4 0 2 5 3 4 - 0 3 0 2 3 5 4 + 0 2 0 2 3 5 4 - 0 1 0 2 3 5 4 - 1 4 0 2 3 4 5 + 1 3 0 2 3 4 5 - 1 2 0 2 3 4 5 - 2 4 0 2 3 4 5 - 2 3 0 2 3 4 5 - 3 4 0 2 3 4 5 - 4 - 0 2 3 4 5 -
2. Модифицировать сортировку пузырьком.
- Изменить программу сортировки пузырьком:
а) добавить возможность досрочного окончания сортировки;
б) программа написана таким образом, что минимальный элемент "всплывает" в начало массива. Измените программу так, чтобы минимальный элемент "всплывал" в конец массива (внутренний цикл for должен перебирать элементы не с конца, а с начала).public class BubbleSorter { public static void sort(int[] array) { for (int i = 0; i < array.length; i++) { for (int j = array.length - 1; j > i; j--) { if (array[j - 1] > array[j]) { int tmp = array[j - 1]; array[j - 1] = array[j]; array[j] = tmp; } } } } }
3. Debug сортировки выбором.
Сделать задание 1 для алгоритма сортировки выбора.
- Изменить сортировку выбором - исключите обмен значений, если найденный минимальный элемент уже находится на своем месте.
public class SelectionSorter { public static void sort(int[] array) { for (int i = 0; i < array.length; i++) { // i - номер текущего шага int pos = i; int min = array[i]; // цикл выбора наименьшего элемента for (int j = i + 1; j < array.length; j++) { if (array[j] < min) { pos = j; // pos - индекс наименьшего элемента min = array[j]; } } array[pos] = array[i]; array[i] = min; // меняем местами наименьший с array[i] } } }
При написании программ обращайте внимание на рекомендации по оформлению кода.

Зарегистрируйтесь или войдите, чтобы иметь возможность оставить комментарий.