Сортировка одномерных массивов
Автор: MilkyWay1488 • Июнь 20, 2022 • Лабораторная работа • 1,385 Слов (6 Страниц) • 194 Просмотры
Лабораторная работа №13
СОРТИРОВКА ОДНОМЕРНЫХ МАССИВОВ
Вариант №2
Выполнил: Добрянин Павел Юрьевич ЭИЗ-209(с)
Задание:
Отсортируйте методом простого выбора одномерный целочисленный массив типа int, заданный случайными числами на промежутке [-100; 100). Выведите на экран исходный и отсортированный массивы.
//Описание функции сортировки методом простого выбора
#include <iostream>
#include <time.h>
using namespace std;
void gen(int k, int a, int b, int* x);
void out(int k, int* x);
void SelectionSort(int k, int* x);
int main()
{
setlocale(LC_ALL, "rus");
srand(time(0));
int n;
cout << "Введите размер массива: ";
cin >> n;
int* mas = new int[n];
gen(n, -100, 100, mas);
cout << endl << "Сгенерированный массив:" << endl;
out(n, mas);
SelectionSort(n, mas);
cout << endl << "Массив после сортировки:" << endl;
out(n, mas);
cout << "\n";
}
//Описание функции сортировки методом простого выбора
void SelectionSort(int k, int* x)
{
int i, j, min, temp, m = 0;
for (i = 0; i < k - 1; i++)
{
//устанавливаем начальное значение минимального индекса
min = i;
//находим минимальный индекс элемента
for (j = i + 1; j < k; j++)
if (x[j] < x[min]) min = j;
if (min > i)
{//меняем значения местами
temp = x[i];
x[i] = x[min];
x[min] = temp; m++;
}
}
cout << "\n\n Количество перестановок m=" << m;
}
//Описание функции генерации массива
void gen (int k, int a, int b, int* x)
{
int i;
srand(time(NULL) * 1000);
for (i = 0; i < k; i++)
x[i] = rand() * 1.0 / RAND_MAX * (b - a) + a; //Генерация случайных чисел
...