Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Постановка задачи. Для элементов некоторого множества Pвведены соотношения сравнения

Читайте также:
  1. I. 1.1. Пример разработки модели задачи технического контроля.
  2. I.5.3. Подготовка данных для задачи линейного программирования.
  3. I.5.4. Решение задачи линейного программирования.
  4. I.5.5. Просмотр и анализ результатов решения задачи.
  5. I.5.7. Mодификация (изменение) данных задачи.
  6. II. 1.1. Общая постановка задачи.
  7. II.1.3. Решение транспортной задачи в QSB.

Для элементов некоторого множества P введены соотношения сравнения. Под этим будем подразумевать следующее: для каждых двух элементов a,b Î P верно ровно одно из трех соотношений: a<b, a>b, a=b. Эти соотношения должны обладать свойствами транзитивности:

a<b, b<c Þ a<c

a>b, b>c Þ a>c

a=b, b=c Þ a=c

и аналогом свойства симметричности:

a<b Û b>a

 

Пусть дано некоторое упорядоченное подмножество (последовательность) элементов из P: {a1, …, aN}, aiÎ P. Требуется найти такую перестановку (x1,…,xN), что ax1, …, axN – будет неубывающей последовательностью, т.е. axi < ax(i+1) или axi = ax(i+1) . Напомним, что перестановкой n элементов мы называем некоторое взаимно-однозначное соответствие множества чисел {1,…,N} с таким же множеством чисел {1,…,N}, т.е. такую функцию s: {1,…,N} -> {1,…,N}, для которой если i¹j, то s(i)¹s(j).

Здесь, конечно, надо сразу задаться вопросом: а возможно ли это сделать при данных ограничениях на приведенные операции сравнения? Другим разумным вопросом будет: а если это можно сделать, то единственным ли (с точностью до перестановок подряд идущих элементов, между которыми выполняется соотношение =) способом? Ответы на оба вопросы положительны.

Доказательства утверждения, кроющегося в первом вопросе (о существовании перестановки), легко провести по индукции по n.

Для доказательства утверждения, кроющегося во втором вопросе (о единственности перестановки), можно сначала показать, что в упорядоченном множестве элементы, между которыми выполняется соотношение = должны идти подряд, что дает возможность заменить их одним элементом. Далее можно ввести функцию M(i) – количество элементов из {a1, …, aN}, меньших ai. Легко показать, что эта функция однозначно определяет положение элемента ai в упорядоченном множестве.

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

Будем говорить, что алгоритм сортировки основан на операциях сравнения, если алгоритм может быть записан в виде бинарного дерева (дерева решения), каждая вершина которого либо является завершающей (т.е. при попадании в нее исходная последовательность данных оказывается отсортированной), либо:

· вычисляется некоторая функция от входных данных алгоритма,

· производится сравнение полученной величины с 0 (одной из операций: <, > или =)

· от каждой вершины дерева, в зависимости от полученного результата, происходит переход к левой или правой ветви дерева

· на каждой ветви дерева происходит одна транспозиция элементов входных данных (обмен местами двух определенных элементов последовательности).

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

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

 

Если исходные данные задачи принадлежат k-мерному Евклидову пространству и если вычисляемая в узлах функция является многочленом степени n, то говорят, что алгоритм представим в виде алгебраического дерева степени n.


Дата добавления: 2015-10-30; просмотров: 109 | Нарушение авторских прав


Читайте в этой же книге: Алгоритмы и алгоритмические языки | Представление чисел в ЭВМ | Сортировка слиянием с рекурсией. | Сортировка слиянием без рекурсии. | Доказательство корректности работы алгоритма. | Оценки времени работы алгоритма. | Некоторые задачи, сводящиеся к сортировке. | Сортировки и связанные с ними задачи. | SortB (A, N, M, B) | То return QFindStatP (A, p, j, k,N ) |
<== предыдущая страница | следующая страница ==>
Нижние и верхние оценки.| Сортировка пузырьком.

mybiblioteka.su - 2015-2024 год. (0.007 сек.)