Сортировка массивов
Автор: nastja.kr2 • Декабрь 21, 2018 • Практическая работа • 397 Слов (2 Страниц) • 509 Просмотры
#include <iostream>
#include <stdlib.h>
#include<time.h>
using namespace std;
void Creation(int * &arr, int n) //создание массива
{
arr = new int[n];
}
void FillArr(int *arr, int n) //заполнение массива
{
for (int i = 0; i < n; i++)
{
arr[i] = rand() % 65536;
}
}
void swap(int *xp, int *yp) //ф-ция преремещения
{
int temp = *xp;
*xp = *yp;
*yp = temp;
}
void output(int* arr, int n) //вывод массива
{
for (int i = 0; i < n; i++)
{
cout << arr[i] << "\t";
}
cout << endl;
}
void selectionSort(int arr[], int n) //СОРТИРОВКА 1
{
int i, j, min_idx;
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;
swap(&arr[min_idx], &arr[i]);
}
}
void heapify(int arr[], int n, int i)
{
int largest = i;
int l = 2 * i + 1;
int r = 2 * i + 2;
if (l < n && arr[l] > arr[largest])
largest = l;
if (r < n && arr[r] > arr[largest])
largest = r;
if (largest != i)
{
swap(arr[i], arr[largest]);
heapify(arr, n, largest);
}
}
void heapSort(int arr[], int n) //СОРТИРОВКА 2
{
for (int i = n / 2 - 1; i >= 0; i--)
heapify(arr, n, i);
for (int i = n - 1; i >= 0; i--)
{
swap(arr[0], arr[i]);
heapify(arr, i, 0);
}
}
void
...