Сортировка одномерного массива - доработка кода - 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] по возрастанию методом сортировки пузырьком.
- В начале программы объявляются переменные:
- n - количество элементов в массиве (input)
- a[100000] - массив для сортировки (input/output)
- i, j - счётчики для прохождения по массиву (loop control)
- Затем происходит заполнение массива a[100000] с помощью цикла for и ввода с клавиатуры.
- Далее, с помощью двух вложенных циклов for, происходит сортировка массива a[100000] по возрастанию методом сортировки пузырьком. Внешний цикл проходит по всем элементам массива от начала до конца. Внутренний цикл проходит по элементам, начиная с текущего элемента внешнего цикла, до конца массива. Если текущий элемент больше следующего, то они меняются местами с помощью функции swap.
- После сортировки массива, с помощью цикла for и оператора cout, элементы массива выводятся на экран, с пробелом между ними.
- В конце программы вызывается функция system(
pause
), чтобы программа не закрылась сразу после вывода результата, и пользователь мог увидеть отсортированный массив. - В конце программы возвращается 0, чтобы операционная система знала, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д