Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание

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

Сборка и запуск

1. Сборка jar

mvn clean package

2. Запуск приложения

java -jar target/test-task-0.0.1-SNAPSHOT.jar

3. Swagger UI

http://localhost:8080/swagger-ui/index.html

Пример запроса

POST /api/process-file

Тело запроса (JSON)

{
  "filePath": "src/main/resources/test.xlsx",
  "n": 5
}

About

test task

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages