Сортировка вставками - C (СИ) (76722)
Формулировка задачи:
Отсортировать элементы методом вставками, и найти максимальное.
Например задается массив чисел и нужно найти максимальное (сортировка вставками).
Решение задачи: «Сортировка вставками»
textual
Листинг программы
void insertsort (double *a, int n) { double x; int i, j; for (i=0; i < n; i++) { x = a[i]; for (j=i-1; j>=0 && a[j]>x; j--) a[j+1] = a[j]; a[j+1] = x; } }
Объяснение кода листинга программы
- В функции
insertsort
есть два аргумента:double *a
иint n
. double *a
- это указатель на массив изn
чисел типаdouble
.int n
- это количество элементов в массивеa
.- Внутри функции объявлены следующие переменные:
double x
- временная переменная для хранения текущего элемента массиваa
.int i
иj
- индексы текущего и предыдущего элементов массиваa
.
- Внешний цикл
for
проходит по всем элементам массиваa
от начала до конца. - Внутренний цикл
for
занимается поиском подходящего места для вставки текущего элементаx
в уже отсортированную часть массива. - Если текущий элемент
x
меньше или равен предыдущему элементу, то внутренний цикл завершается иx
вставляется между предыдущим и текущим элементами. - Если текущий элемент
x
больше предыдущего элемента, то внутренний цикл продолжается иx
вставляется после предыдущего элемента. - После завершения внутреннего цикла, текущий элемент
x
вставляется в массивa
на позициюi
. - После завершения внешнего цикла, массив
a
будет отсортирован по возрастанию.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д