C/C++

Написать программу, которая сравнивает число перестановок элементов при использовании сортировки «пузырьком» (усовершенс

Написать программу, которая сравнивает число перестановок элементов при использовании сортировки «пузырьком» (усовершенствованная версия задания 2) и методом выбора. Выполнить её тестирование на разных 10 массивах, содержащих 1000 случайных элементов, вычислить среднее число перестановок для каждого метода после тестирования.

Поможете мне сделать код на C++. Пожалуйста.
В каком институте учишься?)
4I
4Inga
21 876
Лучший ответ
 int bubble_sort(int * arr, int n) {
int count = 0;
for (int i = n - 1; i > 0; --i) {
bool flg = true;
for (int j = 0; j < i; ++j) {
if (arr[j] > arr[j + 1]) {
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
flg = false;
++count;
}
}
if (flg) { break; }
}
return count;
}

int selection_sort(int * arr, int n) {
int count = 0;
for (int i = n - 1; i > 0; --i) {
int k = i;
for (int j = 0; j < i; ++j) {
if (arr[k] < arr[j]) { k = j; }
}
if (k != i) {
int tmp = arr[i];
arr[i] = arr[k];
arr[k] = tmp;
++count;
}
}
return count;
}

int a[1000], b[1000];

int main() {
int cb = 0, cs = 0;
srand(time(NULL));
for (int i = 0; i < 10; ++i) {
for (int j = 0; j < 1000; ++j) { a[j] = b[j] = rand() % 201 - 100; }
cb += bubble_sort(a, 1000);
cs += selection_sort(b, 1000);
}
cout
Николай Павлюк
Николай Павлюк
79 349
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

// Функция для сортировки пузырьком
void bubbleSort(int arr[], int n)
{
int i, j, temp;
int count = 0; // Счетчик перестановок элементов

for (i = 0; i < n-1; i++)

// Последний элемент не нуждается в сортировке
for (j = 0; j < n-i-1; j++)
{
if (arr[j] > arr[j+1])
{

// Меняем местами arr[j] and arr[j+1]
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;

count++; // Увеличиваем счетчик после каждой послановки.

}

}

cout << "Number of swaps in Bubble Sort: " << count << endl; //Выводим результат. }

// Selection Sort Function.
void selectionSort(int arr[], int n) {

int i, j, min_idx, temp;

int count = 0; // Counting the number of swaps.

for (i = 0; i < n-1; i++) {

min_idx = i;

for (j = i+1; j < n; j++)

if (arr[j] < arr[min_idx]) min_idx = j;

temp = arr[min_idx];

arr[min_idx] = arr[i];

arr[i] = temp;

count++; // Incrementing the counter after each swap. } cout << "Number of swaps in Selection Sort: " << count << endl;} // Main function to test above functions.int main() { srand(time(0)); const int size=1000 ; int array [size]; for (int k=0 ; k<10 ; k++){ for (int i=0 ; i<size ; i++){ array [i]=rand()%1000 + 1 ; } bubbleSort(array, size); selectionSort(array, size); cout<<endl<<endl ; } return 0;}
Евгений Бураков 1) Оно не выводит среднего количества перестановок.
2) Оно сортирует выбором уже отсортированный массив, поэтому количество перестановок равно нулю при нормальной реализации.

В общем, не то ты скопировал у ChatGPT.
Евгений Бураков Реализация настолько ламерская, что даже на отсортированном массиве делает 999 перестановок. Впрочем, на фоне того, что программа не соответствует заданию, это мелочи.
Абдугани Пулатов Впрочем,напиши скрипт по твоим описаниям,слушай,Chatgpt написал бы лучше)

Похожие вопросы