Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Вопрос 17.1. Как реализуется сортировка посредством выбора и какова временная сложность этого метода сортировки





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

Если сортируемый файл целиком помещается в память (или целиком помещается в массив, то для него мы используем внутренние методы сортировки. Сортировка данных с ленты или диска называется внешней сортировкой.

Главное отличие между ними состоит в том, что при внутренней сортировке любая запись - легко доступна, в то время как при внешней сортировке мы можем пользоваться записями только последовательно, или большими блоками.

При первом проходе ищется минимальное значение массива array, которое затем меняется местами с первым элементом array[1]. Затем поиск продолжается на оставшихся n-1 элементах, ищется второй минимум, который переставляется с элементом array[2] и т.д.

Cсортировка методом отбора тоже является n-квадратичным алгоритмом. Внешний цикл исполняется n-1 раз, а внутренний - n/2 раз. В результате сортировка методом отбора требует сравнений, что сильно замедляет работу при большом количестве элементов. Количества перестановок, требующиеся в наилучшем и наихудшем случаях для метода сортировки отбором, будут следующими:

В лучшем случае: 3(n-1), В худшем случае:

В наилучшем случае, если список уже упорядочен, требуется сравнить только (n-1) элемент, и каждое сравнение требует трех промежуточных шагов. Наихудший случай аппроксимирует количество сравнений. Средний случай вычисляется по следующей формуле:

n(log n + y), где y - константа Эйлера, примерно равная 0.577216.

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

void select_sort(int *array, int n)

{

int i, j, temp;

for (i = 0; i < n-1; i++)

for (j = i+1; j < n; j++)

if (array[j] < array[i]) {

temp = array[i];

array[i] = array[j];

array[j] = temp;

}

}







Date: 2016-08-30; view: 376; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию