Лекция
Привет, сегодня поговорим про сортировка методом прямого включения, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое сортировка методом прямого включения , настоятельно рекомендую прочитать все из категории Структуры данных.
Рассмотрим преимущества прямых методов:
1. Об этом говорит сайт https://intellect.icu . Программы этих методов легко понимать, и они коротки. Напомним, что сами программы также занимают память.
2. Прямые методы особенно удобны для объяснения характерных черт основных принципов большинства сортировок.
3. Усложненные методы требуют небольшого числа операций, но эти операции обычно сами более сложны, и поэтому для достаточно малых n прямые методы оказываются быстрее, хотя при больших n их использовать, конечно, не следует.
Методы сортировки "на том же месте" можно разбить в соответствии с определяющими их принципами на 3 категории:
1. Сортировки с помощью включения (by insertion)
2. Сортировки с помощью выделения (by selection)
3. Сортировки с помощью обменов (by exchange)
сортировка методом прямого включения
Такой метод широко используется при игре в карты. Элементы (карты) мысленно делятся на уже "готовую" последовательность a(1),...,a(i-1) и исходную последовательность. При каждом шаге, начиная с i=2 и увеличивая i каждый раз на единицу, из исходной последовательности извлекается i-й элемент и перекладывается в готовую последовательность, при этом он вставляется на нужное место.
К прямым методам относится метод прямого выбора.
Рассматриваем весь ряд массива и выбираем элемент меньший или больший элемента а(i), определяем его место в массиве - k, и затем меняем местами элемент а(i) и элемент а(k).
for i = 1 to n - 1
x = a(i)
k = i
for j = i + 1 to n
if x > a(j) then
k = j
x = a(k)
endif
next j
a(k) = a(i)
a(i) = x
next i
return
for i := 1 to n - 1 do
begin
x := a[i];
k := i;
for j := i + 1 to n do
if x > a[j] then
begin
k := j;
x := a[k];
end;
a[k] := a[i];
a[i] := x;
end;
Эффективность алгоритма:
В худшем случае сортировка прямым выбором дает порядок n2, как и для числа сравнений, так и для числа перемещений.
Создать группу из N студентов. Ввести их: фамилия, имя, год рождения, оценки по предметам: стр. и алг.данных, высш. математика, физика, программирование, общий балл сдачи сессии; Разработать программу с использованием метода "прямого выбора", которая бы осуществляла сортировку (согласно варианту) :
1. Фамилий студентов по алфавиту.
2. Фамилий студентов по алфавиту в обратном порядке.
3. Студентов по старшинству (начиная со старшего).
4. Студентов по старшинству (начиная с младшего).
5. Студентов по общему баллу (по возрастанию).
6. Студентов по общему баллу (по убыванию).
7. Студентов по результатам 1-го экзамена (по возрастанию).
8. Студентов по результатам 2-го экзамена (по убыванию).
9. Студентов по результатам 3-го экзамена (по возрастанию).
10. Студентов по результатам 4-го экзамена (по убыванию).
11. Имен в алфавитном порядке.
12. Имен в обратном алфавитном порядке.
На этом все! Теперь вы знаете все про сортировка методом прямого включения, Помните, что это теперь будет проще использовать на практике. Надеюсь, что теперь ты понял что такое сортировка методом прямого включения и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Структуры данных
Из статьи мы узнали кратко, но содержательно про сортировка методом прямого включения
Комментарии
Оставить комментарий
Структуры данных
Термины: Структуры данных