Алгоритм сортировки пузырьком и запись в лог-файл
Привет! В этой статье расскажу о своем личном опыте реализации алгоритма сортировки пузырьком и записи результатов в лог-файл. Для начала, давайте разберемся, что такое сортировка пузырьком и зачем нужен лог-файл.
Сортировка пузырьком
Сортировка пузырьком – это простой алгоритм сортировки, который проходит по массиву несколько раз, сравнивая попарно соседние элементы и меняя их местами в случае необходимости, чтобы все элементы оказались в правильном порядке.
Ниже приведен мой код реализации алгоритма сортировки пузырьком⁚
public class BubbleSort {
public static void main(String[] args) {
int[] arr {5, 3, 8, 2, 1};
sort(arr);
}
public static void sort(int[] arr) {
int n arr.length;
boolean swapped;
for (int i 0; i < n ⎯ 1; i ) {
swapped false;
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;
swapped true;
}
}
if (!swapped) {
break;
}
logToFile(arr);
}
}
public static void logToFile(int[] arr) {
DateTimeFormatter dtf DateTimeFormatter.ofPattern(″yyyy-MM-dd HH⁚mm⁚ss″);
LocalDateTime now LocalDateTime.now;
String logEntry dtf.format(now) ″ ″ Arrays.toString(arr);
try {
FileWriter fw new FileWriter(″log.txt″, true);
PrintWriter pw new PrintWriter(fw);
pw.println(logEntry);
pw.close;
} catch (IOException e) {
e.printStackTrace;
}
}
}
В методе sort мы перебираем массив несколько раз, сравнивая соседние элементы и меняя их местами при необходимости. После каждой итерации мы вызываем метод logToFile, который записывает текущее состояние массива в лог-файл с указанием текущего времени.
Запись результатов в лог-файл
Для записи результатов в лог-файл я использовал класс FileWriter и класс PrintWriter из пакета java.io. Метод logToFile принимает массив как параметр, форматирует текущую дату и время и создает строку с записью в формате ″год-месяц-день час⁚минуты [массив на данной итерации]″. Затем он открывает файл ‘log.txt’ для записи в конце файла (с помощью конструктора FileWriter(file, true)) и записывает строку в файл с помощью метода println.
Теперь, запустив программу, мы получим отсортированный массив и файл ‘log.txt’, в котором будут записаны все промежуточные состояния массива после каждой итерации.
Вот и всё! Теперь вы знаете, как реализовать алгоритм сортировки пузырьком и записывать результаты в лог-файл. Надеюсь, мой опыт будет полезен для вас!