Отсортировать массив и вывести на экран - C (СИ)
Формулировка задачи:
массив 20 чисел массив вводить рандомом отсортировать массив и вывести на экран
Решение задачи: «Отсортировать массив и вывести на экран»
textual
Листинг программы
#include <stdio.h> #include <time.h> #include<stdlib.h> void Sort(int n, int * Arr); int main() { srand(time(0)); int n=100000; int * Arr = new int[n]; //(int*) malloc (100001); for(int i = 0;i < n;++i){ Arr[i] = rand()%1000; printf("%d ",Arr[i]); } printf("\n"); Sort(n,Arr); for(int i = 0;i < n;++i) printf("%d ",Arr[i]); //getchar(); return 0; } void Sort(int n, int * Arr) { int t; for(int i = 0;i < n-1;){ if(Arr[i] > Arr[i+1]){ t = Arr[i]; Arr[i] = Arr[i+1]; Arr[i+1] = t; i = 0; continue; } ++i; } }
Объяснение кода листинга программы
В данном коде реализована сортировка массива методом сортировки вставками
.
- В функции main() инициализируется генератор случайных чисел, а также выделяется память под массив Arr (размер n).
- Затем в цикле заполняется массив Arr случайными числами от 0 до 999.
- После заполнения массива его сортируют с помощью функции Sort().
- В функции Sort() инициализируется переменная t, которая будет использоваться как временная для обмена значениями.
- Внешний цикл for сортировки, который выполняется до n-1 итераций (так как на последней итерации все элементы уже будут упорядочены).
- На каждой итерации внутреннего цикла проверяется, больше ли текущий элемент Arr[i] чем следующий за ним Arr[i+1]. Если это так, то значения временной переменной t и Arr[i] меняются местами с Arr[i+1].
- После каждой итерации внутреннего цикла значение i сбрасывается в 0, чтобы можно было начать следующую итерацию внешнего цикла.
- В конце функции main() массив Arr выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д