Написать программу, которая сравнивает число перестановок элементов при использовании сортировки «пузырьком» (усовершенствованная версия задания 2) и методом выбора. Выполнить её тестирование на разных 10 массивах, содержащих 1000 случайных элементов, вычислить среднее число перестановок для каждого метода после тестирования.
Поможете мне сделать код на C++. Пожалуйста.
C/C++
Написать программу, которая сравнивает число перестановок элементов при использовании сортировки «пузырьком» (усовершенс
В каком институте учишься?)
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
#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;}
#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;}
Похожие вопросы
- Написать программу, которая выводит числа из файла с текстом и числами. С++
- В LINUX OS Написать программу, которая из командной строки получает целое число N и некоторый текст “Text”.
- Написать программу, которая по введенному значению аргумента вычисляет значение функции, заданной в виде
- Написать программу, которая по выбору пользователя меняет цвет консольного приложения C++
- Напишите программу, которая выводит таблицу факториалов от 1 до 10. c++
- Напишите программу, которая подсчитает и выведет количество слов длины 10, которые можно составить из букв a, b, c.
- Даны две обыкновенные дроби(введено пользователем). Написать программу которая делит первую дробь на вторую.
- Написать программу на C/C++. Найти количество отрицательных элементов под побочной диагональю.
- Написал функцию, которая добавляет элемент в конец массива, как можно улучшить? Нули не учитываются.
- Помогите пожалуйста написать программу, реализующую десять генераторов псевдослучайных чисел.СИ!!!!
2) Оно сортирует выбором уже отсортированный массив, поэтому количество перестановок равно нулю при нормальной реализации.
В общем, не то ты скопировал у ChatGPT.