REST-сервис на Java + Spring Boot, который принимает путь к локальному Excel-файлу (.xlsx)
и число N, после чего находит N-е минимальное число из первого столбца файла.
Поиск реализован с использованием кучи(heap).
Принцип следующий мы считываем все числа из первого столбца первого листа (считаем что числа идут слитно).
Далее мы создаем кучу максимумов - heapMax (имеет размер n). В heapMax мы будем складывать самые маленькие элементы,
соответственно наверху кучи будет храниться нужный нам элемент.
O(K · log N) по времени, где K - количество чисел во входном файле, а N - задается пользователем и влияет на размер кучи
O(K) по памяти т к мы храним все числа в листе numbers
- Java 21
- Spring Boot 3.5.7
- Apache POI (чтение Excel)
- Springdoc OpenAPI (Swagger UI)
- Maven
mvn clean packagejava -jar target/test-task-0.0.1-SNAPSHOT.jarhttp://localhost:8080/swagger-ui/index.htmlPOST /api/process-file
{
"filePath": "src/main/resources/test.xlsx",
"n": 5
}