54 lines
1.6 KiB
Markdown
54 lines
1.6 KiB
Markdown
# Поиск в массиве с использованием барьера
|
||
|
||
Проект содержит две программы для многопоточного поиска значений в массиве с использованием `pthread_barrier`:
|
||
|
||
- **task1**
|
||
Поиск **первого** вхождения заданного значения. Возвращает индекс или `-1`.
|
||
- **task2**
|
||
Поиск **всех** вхождений заданного значения. Возвращает количество и список индексов в порядке возрастания.
|
||
|
||
## Структура проекта
|
||
|
||
```
|
||
.
|
||
├── README.md
|
||
├── .gitignore
|
||
├── CMakeLists.txt
|
||
├── task1.c
|
||
└── task2.c
|
||
```
|
||
|
||
## Сборка
|
||
|
||
```bash
|
||
git clone https://git.gandc.ru/gandc/pr6_sysprog.git
|
||
mkdir build && cd build
|
||
cmake ..
|
||
make
|
||
```
|
||
|
||
## Запуск
|
||
|
||
### Задание 1
|
||
|
||
```bash
|
||
./task1
|
||
```
|
||
|
||
1. Введите `N` и `target` (например: `8 5`)
|
||
2. Введите `N` элементов массива (через пробел или по одному): `1 2 5 3 5 4 5 6`
|
||
3. Введите число потоков: `4`
|
||
|
||
Вывод: индекс первого вхождения или сообщение о том, что значение не найдено.
|
||
|
||
### Задание 2
|
||
|
||
```bash
|
||
./task2
|
||
```
|
||
|
||
Ввод аналогичен. Вывод:
|
||
- Общее число найденных вхождений
|
||
- Список индексов в порядке возрастания
|
||
|