Содержание

Слайд 2

O-символика - что это такое и с чем едят

Источник

O-символика - что это такое и с чем едят Источник

Слайд 3

O-символика - что это такое и с чем едят

Если сложность нашего алгоритма

O-символика - что это такое и с чем едят Если сложность нашего
записанного в функции f это О(n) то это значит то же самое что и |f(x)| < C|g(x)| при g(x) = n и вектор строка x аргументов функций f и g лежат в некоторой окрестности x0

Слайд 4

Упражнение на вычисление сложности алгоритма

Для оценки сложности алгоритмов:
1. Находим объем входных данных

Упражнение на вычисление сложности алгоритма Для оценки сложности алгоритмов: 1. Находим объем
(N)
2. Оцениваем скорость с точностью до коэффициента
3. Всегда берем наихудший случай
Сложностью алгоритма называется величина T(n), где n – размер задачи.

Источник

Слайд 5

Упражнение на вычисление сложности алгоритма

Предположим, что у нас есть задача – отсортировать

Упражнение на вычисление сложности алгоритма Предположим, что у нас есть задача –
неупорядоченный массив чисел по возрастанию. Для этого можно применить простейший алгоритм сортировки – «пузырьковую» сортировку.
Массив можно упорядочить, если последовательно менять местами элементы стоящие «неправильно», то есть не в той последовательности. Сравнивать числа можно как с левого конца массива, так и с правого. Предположим, что мы сравниваем элементы с правого конца массива, тогда можно предложить следующий алгоритм:
1. Сравним выбранный i-й элемент массива с i-1 элементом. Если i-1 элемент больше, то меняем их местами, иначе оставляем нетронутыми.
2. Продолжаем процесс для i от N до 2.
3. Повторяем пункты 1 и 2 N раз.
4. После того, как мы выполним пункты 1 и 2 в первый раз, в начале массива окажется наименьший его элемент. Повторяя процесс, мы получим полностью отсортированный массив.

Слайд 6

Упражнение на вычисление сложности алгоритма

Упражнение на вычисление сложности алгоритма

Слайд 7

Упражнение на вычисление сложности алгоритма

Можно заметить, что нет смысла каждый раз сравнивать

Упражнение на вычисление сложности алгоритма Можно заметить, что нет смысла каждый раз
все элементы, так как после первого прохода массива в начале окажется наименьший элемент, после второго – 2 наименьших, и так далее. В модифицированном виде алгоритм можно записать так:
for(int i = 0; i < n; i++)
for(int j = 1; j < n - i; j++)
if (arr[j-1] > arr[j]) {
tmp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = tmp;
}

Слайд 8

Упражнение на вычисление сложности алгоритма

Такой алгоритм будет делать (N-1)+(N-2)+…+2+1 шагов, что можно

Упражнение на вычисление сложности алгоритма Такой алгоритм будет делать (N-1)+(N-2)+…+2+1 шагов, что
представить как (N-1)N/2. Таким образом T(n) ≈ n2 для данного алгоритма.
По сложности алгоритмы делятся на
1. Полиномиальные (T(n)=nk)
2. Экспоненциальные (T(n)=an)
3. Логарифмическая (T(n)=logan)

Слайд 9

Быстрая сортировка. Компараторы и указатели на функции

Ссылка на стрим:
Источник информации про qsort
Функции:

Быстрая сортировка. Компараторы и указатели на функции Ссылка на стрим: Источник информации

ТипВозвращаемогоЗначения ИмяФункции(СписокФормальныхАргументов)
{
ТелоФункции;
return(ВозвращаемоеЗначение);
}
Указатели на функции:
ТипВозвращаемогоЗначения (*ИмяФункции)(СписокФормальныхАргументов);

Слайд 10

Сортировки

Алгоритмы сортировки: сортировка пузырьком
Ссылка
Алгоритмы сортировки: сортировка выбором
Википедия
Алгоритмы сортировки: сортировка перемешиванием
Википедия
Алгоритмы сортировки: сортировка

Сортировки Алгоритмы сортировки: сортировка пузырьком Ссылка Алгоритмы сортировки: сортировка выбором Википедия Алгоритмы
Шелла
Википедия
Алгоритмы сортировки: гномья сортировка
Википедия
Алгоритмы сортировки: сортировка вставками
Википедия и реализация
Алгоритмы сортировки: сортировка слиянием
Википедия

Слайд 11

Практика: таймирование сортировки

Практика: таймирование сортировки

Слайд 12

Практика: быстро сортируем массивы под разные задачи)

Есть массив содержащий в себе количества

Практика: быстро сортируем массивы под разные задачи) Есть массив содержащий в себе
посещений спортзала разными людьми, отсортировать число посещений по убыванию.
N = 2000 число посещений в диапазоне от 10 до 200.

Слайд 13

Практика: быстро сортируем массивы под разные задачи)

Есть массив содержащий в себе количества

Практика: быстро сортируем массивы под разные задачи) Есть массив содержащий в себе
посещений спортзала разными людьми, отсортировать число посещений по убыванию.
N = 2000 число посещений в диапазоне от 10 до 200.
Сгенерировать массив случайных чисел для сортировки;
Выбрать и применить одну из сортировок (сортируем по убыванию);
Распечатать результат в удобном виде в консоль.