10 сент. 2010 г.

Сортировка выбором

Сортировка выбором

Сортировка выбором — алгоритм сортировки, относящийся к неустойчивым алгоритмам сортировки. На массиве из n элементов имеет время выполнения в худшем, среднем и лучшем случае Θ(n2), предполагая что сравнения делаются за постоянное время.

Алгоритм

Шаги алгоритма:
  1. находим минимальное значение в текущем списке
  2. производим обмен этого значения со значением на первой неотсортированной позиции
  3. теперь сортируем хвост списка, исключив из рассмотрения уже отсортированные элементы
  4. Пример сортировки выбором

    Сортировка выбором

    Реализация сортировки с помощью двоичного дерева на С++

    01//Сортировка выбором
    02  #include
    03  
    04  template
    05  void selection_sort( Iterator first, Iterator last )
    06  {
    07      while( first < --last )
    08          std::iter_swap( last, std::max_element( first, last + 1 ) );
    09  }
    10 
    11/******************/
    12

    Вывод по сортировке выбором

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