Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_proga.docx
Скачиваний:
17
Добавлен:
08.08.2019
Размер:
51.93 Кб
Скачать
  1. Сортировка слиянием.

Алгоритм сортировки — это алгоритм для упорядочения элементов в списке. В случае, когда элемент списка имеет несколько полей, поле, служащее критерием порядка, называется ключом сортировки. По невозрастанию/неубыванию. Сорт раздел по количеству действий и по принципу сортировка.

Рекурсивная.

N*log2(N) к-во действий

ЗЕРКАЛЬНО!

1 часть прямой порядок, 2 - обратный.

// 7 11 / 2 3 // 5 1 / 74 25 //

// 7 11 / 3 2 // 5 1 / 25 74 //

// 2 3 7 11 // 74 25 5 1 //

  1. Сортировка радикс обменом.

Алгоритм сортировки — это алгоритм для упорядочения элементов в списке. В случае, когда элемент списка имеет несколько полей, поле, служащее критерием порядка, называется ключом сортировки. По невозрастанию/неубыванию. Сорт раздел по количеству действий и по принципу сортировка.

Рекурсивная.

N*log2(N) к-во действий

Радикс сортирующие алгоритмы работают с ключами как с числами некоторого основания М, используя их отдельные цифры.

Все что хранится в памяти компьютера можно представить как бинарное число, поэтому многие приложения могут быть изменены так, чтобы использовались как бинарные числа.

Цифры всегда идут по порядку: 0 всегда предшествует 1, и т.д. Такой метод называется сортировка радикс обменом.

Пусть у нас есть способ упорядочить файл по i-му биту так, что сперва идут все ключи в которых этот бит равен 0, а потом все в которых он 1. Это немедленно порождает рекурсивный сортировочный механизм: отсортировать сперва по старшему биту, потом образовавшиеся два подфайла отсортировать независимо друг от друга по следующему биту и т.д.

Сортировка файла по определенному биту очень схожа с процедурой деления в алгоритме быстрой сортировки: найдем 1 слева, 0 справа, обменяем, и повторяем до тех пор, пока указатели сканирования не пересекутся. Это приводит к процедуре сортировки, очень схожей с быстрой сортировкой:

Количество действий к-во бит * к-во значений

  1. Поиск элемента в массиве.

Массив — это пронумерованная последовательность величин одинакового типа, обозначаемая одним именем. Элементы массива располагаются в последовательных ячейках памяти, обозначаются именем массива и индексом. Каждое из значений, составляющих массив, называется его компонентой (или элементом массива).

Массив данных в программе рассматривается как переменная структурированного типа. Массиву присваивается имя, посредством которого можно ссылаться как на массив данных в целом, так и на любую из его компонент.

Поиск элемента в массиве.

1) Для любого случая. Спобоб простого перебора.

2) Способ полного перебора. Поиск в упорядоченном массиве.

3) Поиск по индексу. Если значение элемента совпадают с индексом.

метод двоичного поиска.

  1. Алгоритм Рабина-Карпа

Идея, предложенная Рабином и Карпом, подразумевает поставить в соответствие каждой строке некоторое уникальное число, и вместо того чтобы сравнивать сами строки, сравнивать числа, что намного быстрее. Проблема в том, что искомая строка может быть длинной, строк в тексте тоже хватает.

В искомую строку рассчитываем функцию. f(x)=/f в n*x1+f в (n-1)*x2+...+f*xn/р, где р-модуль.

если f(x)=f(y1) => посимвольно

если f(x)<>f(y1) => f(y2)

Требование к функции: уникальность, простота вычисления, скорость

Алгоритм Рабина-Карпа — это алгоритм поиска строки, который ищет шаблон, то есть подстроку, в тексте используя хеширование. Он не широко используется для поиска одиночного шаблона, но имеет значительную теоретическую важность и очень эффективен в поиске совпадений множественных шаблонов.

Хэш-функция — это функция, которая преобразует каждую строку в числовое значение, называемое хэш-значение;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]