Алгоритмы сортировок
Автор: Anton Krylov • Ноябрь 14, 2023 • Лабораторная работа • 436 Слов (2 Страниц) • 105 Просмотры
ГУАП КАФЕДРА № 42
ОТЧЕТ
ЗАЩИЩЕН С ОЦЕНКОЙ ПРЕПОДАВАТЕЛЬ
[pic 1][pic 2][pic 3]
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №1 |
Алгоритмы сортировок |
по курсу: Алгоритмы и структуры данных |
РАБОТУ ВЫПОЛНИЛ[pic 4][pic 5]
СТУДЕНТ ГР. № | 4221 | А.А. Крылов |
подпись, дата | [pic 6] инициалы, фамилия |
Санкт-Петербург 2023
Оглавление
Задание 3
Блок-схема алгоритма 4
Описание функции 5
Листинг программы 5
Результаты выполнения программы 6
Выводы 10
Задание
Написать программу, для сортировки и анализа текстовых данных. В соответствии с параметрами варианта задания нужно реализовать сортировку слов в тексте и провести его простейший анализ. Варианты заданий приведены на рисунке 1.
[pic 7]
старший преподаватель | С. Ю. Гуков | |
должность, уч. степень, звание | подпись, дата | инициалы, фамилия |
Рисунок 1 – задание
Блок-схема алгоритма
Блок-схема алгоритма представлена на рисунке 2.
[pic 8]
Рисунок 2 – Блок-схема алгоритма
Описание функции
Программа фильтрует введенный текст, затем сортирует его слиянием и выводит результат и статистику в файлы
Листинг программы
# coding=windows-1251 import re
import time
from xml.etree.ElementTree import tostring start = time.time() ## точка отсчета времени ##код программы
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr) // 2 left_half = arr[:mid] right_half = arr[mid:]
left_half = merge_sort(left_half) right_half = merge_sort(right_half)
return merge(left_half, right_half)
def merge(left, right):
merged = []
left_index = right_index = 0
while left_index < len(left) and right_index < len(right):
if left[left_index][0] < right[right_index][0]: merged.append(left[left_index]) left_index += 1
else:
merged.append(right[right_index]) right_index += 1
while left_index < len(left):
merged.append(left[left_index]) left_index += 1
while right_index < len(right):
merged.append(right[right_index]) right_index += 1
return merged alph="абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ " FileName="Vvod"
FileNum = input("File vvod num: ") FileName+=FileNum FileName+=".txt"
f = open(FileName) text=""
for i in f:
for k in i:
if k in alph: text+=str.lower(k)
words = re.findall(r'\b\w+\b', text, re.UNICODE) sorted_words = merge_sort(words)
result = ""
dictionary={'а':0,'б':0, 'в':0 ,'г':0 ,'д':0 ,'е':0, 'ё':0, 'ж':0, 'з':0, 'и':0, 'й':0, 'к':0 ,'л':0, 'м':0, 'н':0, 'о':0, 'п':0 ,'р':0, 'с':0, 'т':0 ,'у':0 ,'ф':0 ,'х':0, 'ц':0, 'ч':0 ,'ш':0, 'щ':0, 'ъ':0, 'ы':0, 'ь':0, 'э':0, 'ю':0 ,'я':0}
...