Сортировка массива по убыванию методом вставки - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Определить массив из 50 вещественных чисел: x[i] = 10*Cos( i/10), i= 1, 2, . . . 50. Отсортировать массив по убыванию значений элементов. Вывести массивы до и после сортировки

Решение задачи: «Сортировка массива по убыванию методом вставки»

textual
Листинг программы
#include<stdio.h>
#include<math.h>
#define N 50
void print(double ar[],int n);
void sort(double ar[],int n);
int main(void)
{
    double x[N];
    int i;
    for(i=0;i<N;i++)
    x[i]=10*cos((i+1)/10.0);
    printf("array before sort\n");
    print(x,N);
    printf("\narray after sort\n");
    sort(x,N);
    print(x,N);
    return 0;
}
void print(double ar[],int n)
{
    int i;
    for(i=0;i<n;i++)
    printf("%1.1lf ",ar[i]);
    printf("\n");
}
void sort(double ar[],int n)
{
    int i,j;
    double t;
    for(i=1;i<n;i++)
    {
        j=i-1; t=ar[i];
        while(j>=0 && ar[j]<t)
        {
            ar[j+1]=ar[j];
            j--;
        }
        ar[j+1]=t;
        
        
    }
}

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

Код представлен на языке C и реализует алгоритм сортировки массива методом вставки.

  1. В функции main создается массив x типа double с 50 элементами.
  2. Затем, с помощью цикла for, каждый элемент массива x инициализируется значением 10*косинус((i+1)/10.0).
  3. Далее, с помощью функции print массив выводится на экран в исходном порядке.
  4. После этого, вызывается функция sort, которая принимает массив x и его размер в качестве аргументов.
  5. В функции sort используется цикл for, который начинается со второго элемента массива (i=1) и продолжается до n-1 итераций, где n - размер массива.
  6. Внутри цикла, переменная j инициализируется значением i-1, а переменная t - значением текущего элемента массива (ar[i]).
  7. Затем, в цикле while происходит сравнение текущего элемента массива t с каждым предыдущим элементом массива ar[j]. Если предыдущий элемент меньше t, то элементы меняются местами с помощью цикла while.
  8. После завершения внутреннего цикла while, элемент t вставляется в отсортированную часть массива.
  9. После завершения внешнего цикла for в функции sort, отсортированный массив выводится на экран с помощью функции print.
  10. В функции main возвращается 0, что означает успешное выполнение программы.

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


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

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

6   голосов , оценка 4.333 из 5
Похожие ответы