Сортировка массива по убыванию методом вставки - 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 и реализует алгоритм сортировки массива методом вставки.
- В функции
main
создается массивx
типаdouble
с 50 элементами. - Затем, с помощью цикла
for
, каждый элемент массиваx
инициализируется значением 10*косинус((i+1)/10.0). - Далее, с помощью функции
print
массив выводится на экран в исходном порядке. - После этого, вызывается функция
sort
, которая принимает массивx
и его размер в качестве аргументов. - В функции
sort
используется циклfor
, который начинается со второго элемента массива (i=1) и продолжается до n-1 итераций, где n - размер массива. - Внутри цикла, переменная
j
инициализируется значением i-1, а переменнаяt
- значением текущего элемента массива (ar[i]). - Затем, в цикле
while
происходит сравнение текущего элемента массиваt
с каждым предыдущим элементом массиваar[j]
. Если предыдущий элемент меньшеt
, то элементы меняются местами с помощью циклаwhile
. - После завершения внутреннего цикла
while
, элементt
вставляется в отсортированную часть массива. - После завершения внешнего цикла
for
в функцииsort
, отсортированный массив выводится на экран с помощью функцииprint
. - В функции
main
возвращается 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д