Сортировка вставками - 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;
  }
}

Объяснение кода листинга программы

  1. В функции insertsort есть два аргумента: double *a и int n.
  2. double *a - это указатель на массив из n чисел типа double.
  3. int n - это количество элементов в массиве a.
  4. Внутри функции объявлены следующие переменные:
    • double x - временная переменная для хранения текущего элемента массива a.
    • int i и j - индексы текущего и предыдущего элементов массива a.
  5. Внешний цикл for проходит по всем элементам массива a от начала до конца.
  6. Внутренний цикл for занимается поиском подходящего места для вставки текущего элемента x в уже отсортированную часть массива.
  7. Если текущий элемент x меньше или равен предыдущему элементу, то внутренний цикл завершается и x вставляется между предыдущим и текущим элементами.
  8. Если текущий элемент x больше предыдущего элемента, то внутренний цикл продолжается и x вставляется после предыдущего элемента.
  9. После завершения внутреннего цикла, текущий элемент x вставляется в массив a на позицию i.
  10. После завершения внешнего цикла, массив a будет отсортирован по возрастанию.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5