Сортировка вставками - C (СИ) (154552)
Формулировка задачи:
Мне нужно написать программу, в которой бы присутствовала сортировка вставками.
Желательно в одномерном массиве.
Помогите пожалуйста.
Решение задачи: «Сортировка вставками»
textual
Листинг программы
int n= ? //кодичество элементов int A[n]; for(int i=2; i<n; i++) { int key=A[i]; int j=i-1; while(j>=1 && A[j]>key) { A[j+1]=A[j]; j--; A[j+1]=key } }
Объяснение кода листинга программы
- Задается переменная
n
(количество элементов) - Создается массив
A[n]
- Начинается цикл
for
со значениями от 2 доn-1
- Внутри цикла переменная
key
принимает значениеA[i]
- Переменная
j
инициализируется значениемi-1
- В цикле
while
происходит сравнениеkey
с каждым элементом массиваA[j]
от начала массива до элемента, большегоkey
- Если элемент больше
key
, то элементы массива сдвигаются вправо на одну позицию - Значение
j
уменьшается на 1 - Когда
j
становится меньше или равным 1 и элемент массиваA[j]
не большеkey
, тоkey
вставляется в массив на позициюj+1
- Цикл
while
завершается, когдаj
становится меньше 1 или находится элемент, меньшийkey
- Цикл
for
завершается - Массив
A
отсортирован вставками
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д