Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Сортировка одномерных массивов

Автор:   •  Июнь 20, 2022  •  Лабораторная работа  •  1,385 Слов (6 Страниц)  •  147 Просмотры

Страница 1 из 6

Лабораторная работа №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; //Генерация случайных чисел

...

Скачать:   txt (4.8 Kb)   pdf (533.9 Kb)   docx (481.9 Kb)  
Продолжить читать еще 5 страниц(ы) »
Доступно только на Essays.club