Сортировка одномерного массива - доработка кода - C (СИ)

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

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

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
void Shell(int *mas,int n)
{
     int i,j; //"ГЎГҐГЈГіГ*ГЄГЁ"  
     int temp; //âñïîìîãГ*òåëüГ*Г*Гї ïåðåìåГ*Г*Г*    
     int h = n/2;
     while(h>0)// ïðîâåðÿåì, åñëè h>0 ГІГ® âõîäèì Гў òåëî öèêëГ* 
     {
        for ( int i = 0; i < n; i++ )
               {
                    if(mas[j] > mas[j+h])
                    {
                         temp = mas[j];
                         mas[j] = mas[j+h];
                         mas[j+h] = temp;  //ïåðåñòГ*Г*îâêГ* ýëåìåГ*òîâ 
                         j=j-h;
                    }
                    else
                         j=-1;// ïåðåñòГ*Г*îâêè Г*ГҐ áûëî -  "ГЎГҐГЈГіГ*îê" óìåГ*ГјГёГЁГ¬ Г*Г* 1  
               }
          }
          h=h/2;
     }
     
int main(void)
{
int n, i, mas[i];
 int temp; //âñïîìîãГ*òåëüГ*Г*Гї ïåðåìåГ*Г*Г*   
printf("\nVvedite Kol-vo el-ov massiva : ");
scanf("%d", &n);
printf("\n\nMassiv : \n\n");
 
for(i=0;i<n;i++)
{              
 printf("%3d ", mas[i]=rand()%100-rand()%100); //ïîñëå "-" äèГ*ïîçîГ* îòðèöГ*òåëüГ*ûõ Г§Г*-ГЁГ©. (ГІГіГІ 100)
} 
Shell(mas,i);
 
for(i=0;i<n;i++)
{              
 printf("%3d ", mas[i]); 
}
 getch();
 return 0;
}

Решение задачи: «Сортировка одномерного массива - доработка кода»

textual
Листинг программы
#include <iostream>
 
using namespace std;
 
int main()
{
    int n,a[100000],i,j;
    cin>>n;
    for (i=1; i<=n; i++)
    {
        cin>>a[i];
    }
    for (i=1; i<=n; i++)
    {
        for (j=i+1; j<=n; j++)
        {
            if (a[i]>a[j])
            {
                swap(a[i],a[j]);
            }
        }
    }
    for (i=1; i<=n; i++)
    {
        cout<<a[i]<<" ";
    }
    system ("pause");
    return 0;
}

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

В этом коде происходит сортировка массива a[100000] по возрастанию методом сортировки пузырьком.

  1. В начале программы объявляются переменные:
    • n - количество элементов в массиве (input)
    • a[100000] - массив для сортировки (input/output)
    • i, j - счётчики для прохождения по массиву (loop control)
  2. Затем происходит заполнение массива a[100000] с помощью цикла for и ввода с клавиатуры.
  3. Далее, с помощью двух вложенных циклов for, происходит сортировка массива a[100000] по возрастанию методом сортировки пузырьком. Внешний цикл проходит по всем элементам массива от начала до конца. Внутренний цикл проходит по элементам, начиная с текущего элемента внешнего цикла, до конца массива. Если текущий элемент больше следующего, то они меняются местами с помощью функции swap.
  4. После сортировки массива, с помощью цикла for и оператора cout, элементы массива выводятся на экран, с пробелом между ними.
  5. В конце программы вызывается функция system(pause), чтобы программа не закрылась сразу после вывода результата, и пользователь мог увидеть отсортированный массив.
  6. В конце программы возвращается 0, чтобы операционная система знала, что программа успешно завершилась.

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


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

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

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