Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчет к ПР5

.docx
Скачиваний:
12
Добавлен:
24.01.2023
Размер:
58.28 Кб
Скачать

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Кафедра безопасности информационных систем

ОТЧЁТ

по практической работе № 5 на тему: «Методы поиска элемента в массиве»

по дисциплине «Алгоритмы и структуры данных»

Выполнил: студент группы ИСТ-114, Медведева С.Г.,

«26» октября 2022 г. ___________/Медведева С.Г.

Принял: к.ф.-м.н., доцент, И.А. Моисеев

«26» октября 2022 г. ___________/ И.А. Моисеев /

1 Основная часть

    1. Цель работы

Изучить алгоритмы сортировки и поиска данных в массивах

    1. Результаты выполнения работы

#include <iostream> #include <fstream> #include <chrono> using namespace std; void readArr(int *arr, ifstream &file){ if (file.is_open()){ int i{}; while (!file.eof()){ file >> arr[i]; ++i; } } else cout << "file is not open"; } void inFile (int *arr, ofstream &file, int size){ if (file.is_open()){ for (int i{}; i < size; ++i ){ file << arr[i]; file << " "; } } else cout << "file is not open"; } void printArr (int *arr, int size){ for (int i {}; i != size; ++i){ cout << arr[i] << "\t"; } } void selSort (int *arr, int size){ int itCom{},itPer{}, maxIndex; for (int i{}; i < size-1; i++){ maxIndex = i; for (int j{i}; j < size; j++){ itCom++; if (arr[j] > arr[maxIndex]) maxIndex = j; } swap(arr[i],arr[maxIndex]); itPer++; } cout << "Permutations: " << itPer << "\t Comparisons: " << itCom << endl; } int lineSearch (int *arr, int size, int search ){ for (int i{}; i < size; ++i){ if(arr[i] == search) return ++i; } return -1; } int binarySearch (int *arr, int size, int search){ int first{}; while (true){ int mid {(first+size)/2}; if (search < arr[mid]) first = mid + 1; else if (search > arr[mid]) size = mid - 1; else return mid+1; if (first > size) return -1; } } int main() { ifstream a ("a.txt"); int *arr = new int [30]; readArr(arr,a); printArr(arr, 30); cout << endl << "Selection sorting: "<< endl; auto begin = chrono::steady_clock::now(); selSort(arr, 30); auto end = chrono::steady_clock::now(); cout << "Time: " << (chrono::duration_cast<chrono::microseconds>(end-begin)).count() << endl; printArr(arr, 30); ofstream b ("b.txt"); inFile(arr,b,30); cout << "Enter the desired item:"; int item; cin >> item; cout << "Searching number (lineSearch): " << lineSearch(arr, 30, item) << endl; cout << "Searching number (binarySerch): " << binarySearch(arr, 30, item); return 0; }

Результат выполнения:

Выводы:

Были изучены алгоритмы сортировки и поиска данных в массиве

1

Соседние файлы в предмете Алгоритмы и системы данных