В своем опыте я сталкивался с сортировкой массивов различными методами, и одним из них является сортировка пузырьком. Сегодня я хочу поделиться с вами своим опытом и представить код реализации алгоритма сортировки пузырьком числового массива, с записью каждой итерации в лог-файл.Для начала, создадим класс BubbleSort с методом sort, который будет принимать на вход числовой массив arr и выполнять сортировку пузырьком.
Один из основных принципов сортировки пузырьком ౼ это сравнение каждого элемента с его соседним и, при необходимости, их перестановка. Такие сравнения и перестановки повторяются до тех пор, пока массив не будет полностью отсортирован.Для начала, создадим массив и запишем его в лог-файл до сортировки. Затем, приступим к самой сортировке⁚
java
import java.io.FileWriter;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class BubbleSort {
public static void main(String[] args) {
int[] arr {5, 2, 8, 1, 9};
// Запись исходного массива в лог-файл
writeLog(arr);
// Сортировка пузырьком
sort(arr);
// Запись отсортированного массива в лог-файл
writeLog(arr);
}
public static void sort(int[] arr) {
int n arr.length;
for (int i 0; i < n ౼ 1; i ) {
for (int j 0; j < n ౼ i ⎯ 1; j ) {
if (arr[j] > arr[j 1]) {
// Перестановка элементов
int temp arr[j];
arr[j] arr[j 1];
arr[j 1] temp;
}
// Запись текущего состояния массива в лог-файл
writeLog(arr);
}
}
}
public static void writeLog(int[] arr) {
try {
FileWriter writer new FileWriter(″log.txt″, true);
LocalDateTime now LocalDateTime.now;
String formattedDateTime now.format(DateTimeFormatter.ofPattern(″yyyy-MM-dd HH⁚mm⁚ss″));
writer.write(formattedDateTime ″ ″ Arrays.toString(arr) ″\n″);
writer.close;
} catch (IOException e) {
e.printStackTrace;
}
}
}
В методе sort мы используем вложенный цикл for для сравнения и перестановки элементов массива. При обнаружении, что текущий элемент больше следующего, мы выполняем перестановку. Затем мы записываем текущее состояние массива в лог-файл с помощью метода writeLog.
Метод writeLog открывает файл log.txt с помощью FileWriter, добавляет отформатированную дату и текущий массив в конец файла, а затем закрывает файл. Если при записи происходит ошибка, мы обрабатываем исключение IOException.
Теперь, после каждой итерации сортировки, вы можете наблюдать изменения массива в лог-файле log.txt. Это поможет вам лучше понять, как работает алгоритм сортировки пузырьком.
Надеюсь, мой опыт будет полезен для вас. Удачи в изучении алгоритмов сортировки!