Скачать презентацию Порядковые статистики Дано множество из n чисел нужно Скачать презентацию Порядковые статистики Дано множество из n чисел нужно

Порядковые статистики.ppt

  • Количество слайдов: 10

Порядковые статистики Дано множество из n чисел; нужно найти тот его элемент, который будет Порядковые статистики Дано множество из n чисел; нужно найти тот его элемент, который будет k -м по счёту, если расположить элементы множества в порядке возрастания. Такой элемент называется k-ой порядковой статистикой. 1

Частные задачи порядковой статистики • минимум (minimum) — это порядковая статистика номер 1 • Частные задачи порядковой статистики • минимум (minimum) — это порядковая статистика номер 1 • максимум (maximum) — порядковая статистика номер n-1. • Медианой (median) называется элемент множества, находящийся (по счёту) посередине между минимумом и максимумом. Точнее говоря, если n нечётно, то медиана — это порядковая статистика номер k=(n+1)/2, а если n четно, то медиан даже две: с номерами k=n/2+1. Можно ещё сказать, что, независимо от чётности n, медианы имеют номер k= (n+1)/2 и k= (n+1)/2. В дальнейшем мы будем называть медианой 2 меньшую из двух (если их две).

Сложность алгоритма • Одно из очевидных решений задачи вычисления порядковых статистик состоит в следующем: Сложность алгоритма • Одно из очевидных решений задачи вычисления порядковых статистик состоит в следующем: – упорядочить исходную последовательность в порядке не убывания элементов и взять k-й элемент. – алгоритм работает за O(n*logn), что в принципе вполне приемлемо. • Но известно, что порядковую статистику можно найти за время O(n). 3

Методы решения задач порядковой статистики • Минимум или максимум можно найти за n-1 сравнение. Методы решения задач порядковой статистики • Минимум или максимум можно найти за n-1 сравнение. Быстрее нельзя. • Одновременный поиск минимума и максимума можно осуществить за 3 n/2 -2 сравнений. • порядковую статистику за время 0(n) можно найти с помощью: – вероятностного алгоритма – детерминированного алгоритма • Эти алгоритмы асимптотически эффективнее очевидного подхода "упорядочи множество и выбери нужный элемент", 4

Особенности реальной задачи • 1. Если нескольких элементов имеют одно и то же значение, Особенности реальной задачи • 1. Если нескольких элементов имеют одно и то же значение, и они должны сохранять порядок следования, то упорядочение необходимо выполнить одним из методов устойчивой сортировки, в противном случае можно использовать любой метод сортировки. • 2. Если отыскивается одна или несколько порядковых статистик, выгоднее применение иного алгоритма. • 3. На выбор алгоритма влияет число элементов n исходной последовательности. • 4. Если исходная последовательность должна быть сохранена, то для отыскания порядковых статистик придется создать дополнительный массив ключей. Это выгодно, когда элементы исходной последовательности имеют сложную структуру и их перестановки требуют значительного времени. 5

Алгоритм • • • (1) Наугад выбрать некоторый элемент A[s] и записать его значение Алгоритм • • • (1) Наугад выбрать некоторый элемент A[s] и записать его значение в переменную x. (2) Просматривая массив слева направо, найти элемент A[i]: A[i] x. (3) Просматривая массив справа налево, найти элемент A[j] : x A [j]. (4) Если i ≤ j, обменять найденные элементы A[i] и A [j] между собой, на единицу увеличить i и уменьшить j. После этого вернуться к шагу (2). Иначе – последовательность разбита на две группы, Если количество элементов в группе с kым элементом <2, то выход. (5) Иначе переход к группе с k-ым элементом и рекурсивно выполняются шаги 1 -4. 6

Отличие от быстрой сортировки • Отличие процедуры нахождения k-й порядковой статистики от процедуры Quick Отличие от быстрой сортировки • Отличие процедуры нахождения k-й порядковой статистики от процедуры Quick Sort заключается в том, что после разбиения на две группы выбирается та группа, в которой находится k-й элемент, и в дальнейшем обрабатывается только эта группа, а не обе группы, как это делается в Quick Sort • Время, затрачиваемое на нахождение k-й порядковой статистики, как и время сортировки по Quick Sort, зависит от удачного выбора опорного элемента при разбиении на группы. Время будет минимально, если при каждом проходе группы содержат примерно одинаковое число элементов. 7

Выбор опорного элемента • Результат процедуры разделения (следовательно, и временная сложность всего алгоритма) определяется Выбор опорного элемента • Результат процедуры разделения (следовательно, и временная сложность всего алгоритма) определяется выбором граничного элемента A[s]. • Неблагоприятным будет выбор в качестве граничного элемента A[s] минимума или максимума. В этом случае массив сократится на один элемент. Удачный выбор – медиана, так как при этом разделение осуществится пополам. Однако дополнительные временные затраты на выбор лучшего граничного элемента могут лишить алгоритм исходной простоты и скорости. 8

линейный метод нахождения порядковых статистик • Существует линейный метод нахождения порядковых статистик, обеспечивающий в линейный метод нахождения порядковых статистик • Существует линейный метод нахождения порядковых статистик, обеспечивающий в самом худшем случае время выполнения порядка O(n). • Этот метод основан на поиске «хорошего» опорного элемента и применяется для последовательностей с большим числом элементов. 9

Пример 25 57 48 37 12 92 86 33 25 33 48 37 12 Пример 25 57 48 37 12 92 86 33 25 33 48 37 12 92 86 57 25 33 12 37 48 92 86 57 25 12 33 37 48 92 86 57 12 25 33 37 48 92 86 57 Найдём 3 -ю порядковую статистику. Возьмём в качестве опорного элемента на первой итерации А(s)=37 в качестве опорного элемента на второй итерации А(s)=33 в качестве опорного элемента на третьей итерации А(s)=12 3 -я порядковая статистика =33. 10