Сортировка методом "пузырька" (проверьте правильность) - C (СИ)
Формулировка задачи:
Проверьте пожалуйста правильность написания моей программы.
Последние десять и первые пять элементов массива Н(27) оставить без изменения, остальные отсортировать в порядке убывания.
#include<iostream.h>
int main()
{
const int n=27;
int H[n], i, m, j;
srand(time(NULL));
cout<<"vvedite "<<n<<" elementov massiva"<<endl;
for(i=0; i<n; i++)
cin>>H[i];
H[i] = rand() % 100;
for (i=0; i<n-1; i++)
for(j=i-1; j<n-1; j++)
{
if(H[i]<H[i+1]) { m=H[i]; H[i]=H[i-1]; H[i-1]=m;}
cout<<"otsortirovannyi massiv:"<<endl;
}
for(i=0; i<n; i++)
cout<<H[i]<<" ";
return 0;
}Решение задачи: «Сортировка методом "пузырька" (проверьте правильность)»
textual
Листинг программы
#include <stdio.h>
#define N 27
int main()
{
int arr[N], i, j;
srand(time(NULL));
for (i = 0; i < N; i++){
arr[i] = rand() % 100;
}
for (i = 0; i < N; i++){
printf(" %d", arr[i]);
}
printf("\n");
for (i = 5; i < N-10; i++){
for (j = 5; j < N-10; j++){
if (arr[i] < arr[j]){
int tmp = arr[j];
arr[j] = arr[i];
arr[i] = tmp;
}
}
}
for (i = 0; i < N; i++){
printf(" %d", arr[i]);
}
printf("\n");
return 0;
}
Объяснение кода листинга программы
В этом коде используется метод сортировки пузырек для массива из 27 случайных чисел. Вот шаги, которые происходят в коде:
- Создается массив arr размером N = 27 и инициализируются случайными числами от 0 до 99.
- Массив выводится на экран.
- Код переходит к внутреннему циклу, который сортирует массив. Внешний цикл начинается с i = 5 и заканчивается N-10, чтобы не затрагивать уже отсортированные элементы в конце массива.
- Внутренний цикл также начинается с i = 5 и заканчивается N-10. Он сравнивает элементы массива и меняет их местами, если текущий элемент меньше следующего. Это делается для того, чтобы
большиеэлементывсплылив конец массива. - После завершения внутреннего цикла, массив выводится на экран.
- Код завершается, возвращая 0.