Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы аисд.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.94 Mб
Скачать

32.Понятие сортировки, ее эффективность; классификация методов сортировки.

Сортировка - это расположение данных в памяти в регулярном виде по выбранному параметру. Регулярность рассматривают как возрастание (убывание) значения параметра от начала к концу массива данных.

При обработке данных важно знать  информационное поле данных и размещение их в машине.

Различают внутреннюю и внешнюю сортировку:

- внутренняя сортировка - сортировка в оперативной памяти;

- внешняя сортировка - сортировка во внешней памяти.

Если сортируемые записи занимают большой объем памяти, то их перемещение требует больших затрат. Для того, чтобы их уменьшить, сортировку производят в таблице адресов ключей, то есть делают перестановку указателей, а сам массив не перемещается. Это - метод сортировки таблицы адресов.

При сортировке могут встретиться одинаковые ключи. В этом случае желательно после сортировки расположить одинаковые ключи в том же порядке, что и в исходном файле.  Это - устойчивая сортировка.

Мы будем рассматривать только сортировки, не использующие дополнительную оперативную память. Такие сортировки называются «на том же месте».

Эффективность сортировки можно рассматривать по нескольким критериям:

•время, затрачиваемое на сортировку;

 

•объем оперативной памяти, требуемой для сортировки; 

•время, затраченное программистом на написание программы.

Выделяем первый критерий. Эквивалентом затраченного на сортировку времени можно считать количество сравнений и количество перемещений при выполнении сортировки.

•Порядок числа сравнений и перемещений при сортировке лежит в пределах

   от  О (n log n)   до О (n2); 

   О (n) - идеальный  и недостижимый случай.

Различают следующие методы сортировки:

•строгие (прямые) методы;

 

•улучшенные методы.

Строгие методы:

•метод прямого включения;

 

•метод прямого выбора;

 

•метод прямого обмена.

 

 Эффективность строгих методов примерно одинакова.

33.Сортировка методом прямого выбора.

Сортировка методом прямого выбора

Этот метод основан на следующих принципах.

1. Выбирается элемент с наименьшим ключом.

2. Он меняется местами с первым элементом a1.

3. Затем этот процесс повторяется с оставшимися n-1 элементами, n-2 элементами и т.д. до тех пор, пока не останется один, самый "большой" элемент.

Алгоритм сортировки прямым выбором

for i = 1 to n - 1

  x = a(i)

  k = i

  for j = i + 1 to n

    if  a(j) < x  then

        k = j

        x = a(k)

    endif

  next j

  a(k) = a(i)

  a(i) = x

next i

return

 Эффективность алгоритма сортировки прямым выбором

Число сравнений ключей C, очевидно, не зависит от начального порядка ключей. Можно сказать, что в этом смысле поведение этого метода менее естественно, чем поведение прямого включения. Для C  при любом расположении ключей имеем:

  C = n(n-1)/2

Порядок числа сравнений, таким образом,  О(n2).

 

Число перестановок  минимально Мmin = 3(n - 1) в случае изначально упорядоченных ключей и максимально, Мmax = 3(n - 1) + С, т.е. порядок О(n2), если первоначально ключи располагались в обратном порядке.

В худшем случае сортировка прямым выбором дает порядок n2, как  для   числа сравнений, так и для числа перемещений.

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