Файл: Алгоритмы сортировки данных.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 23.05.2023

Просмотров: 141

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

system("cls");

}

void InsertSort(int *mas, int n)

{

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

{

k = i + 1;

tmp = mas[k];

for (j = i + 1; j>0; j--)

{

if (tmp<mas[j - 1])

{

mas[j] = mas[j - 1];

k = j - 1;

}

}

mas[k] = tmp;

}

cout << endl << "Отсортированный массив: ";

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

cout << mas[i] << " ";

}

void mainInsert()

{

setlocale(LC_ALL, "Rus");

int n;

cout << "Количество элементов в массиве - "; cin >> n;

int *mas = new int[n];

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

{

cout << " элемент № " << i + 1; cin >> mas[i];

}

InsertSort(mas, n);

delete[] mas;

system("pause >> void");

system("cls");

}

void quicksort(int *mas, int frst, int lst)

{

int mid, count;

int f = frst, l = lst; mid = mas[(f + l) / 2];

do

{

while (mas[f]<mid) f++;

while (mas[l]>mid) l--;

if (f <= l)

{

count = mas[f];

mas[f] = mas[l];

mas[l] = count;

f++;

l--;

}

} while (f<l);

if (frst<l) quicksort(mas, frst, l);

if (f<lst) quicksort(mas, f, lst);

}

void mainQuick()

{

setlocale(LC_ALL, "Rus");

int *A = new int[nQS];

srand(time(NULL));

cout << "Исходный массив: ";

for (int i = 0; i<nQS; i++)

{

A[i] = rand() % 10;

cout << A[i] << " ";

}

frst = 0; lst = nQS - 1;

quicksort(A, frst, lst);

cout << endl << "Отсортированный массив: ";

for (int i = 0; i<nQS; i++) cout << A[i] << " ";

delete[]A;

system("pause >> void");

system("cls");

}

void Shell(int A[], int n)

{

d = n;

d = d / 2;

while (d>0)

{

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

{

j = i;

while (j >= 0 && A[j]>A[j + d])

{

cnt = A[j];

A[j] = A[j + d];

A[j + d] = cnt;

j--;

}

}

d = d / 2;

}

for (i = 0; i<n; i++) cout << A[i] << " ";

}

void mainShell()

{

setlocale(LC_ALL, "Rus");

cout << "Размер массива - "; cin >> n;

int *A = new int[n];

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

{

cout << " элемент № " << i + 1; cin >> A[i];

}

cout << "\nОтсортированный массив: ";

Shell(A, n);

delete[] A;

system("pause >> void");

system("cls");

}

void Swap(int *Mas, int i)

{

int tmp;

tmp = Mas[i];

Mas[i] = Mas[i - 1];

Mas[i - 1] = tmp;

}

void ShakerSrt(int *Mas, int Start, int N)

{

int L, R, i;

L = Start;

R = N - 1;

while (L <= R)

{

for (i = R; i >= L; i--)

if (Mas[i - 1]>Mas[i]) Swap(Mas, i);

L++;

for (i = L; i <= R; i++)

if (Mas[i - 1]>Mas[i]) Swap(Mas, i);

R--;

}

}

void mainShaker()

{

setlocale(LC_ALL, "Rus");

int n, k;

cout << "Размер массива - "; cin >> n;

int *A = new int[n];

for (k = 0; k<n; k++)

{

cout << " элемент № " << i + 1; cin >> A[k];

}

ShakerSrt(A, 1, n);

cout << "Отсортироанный массив: ";

for (k = 0; k<n; k++)cout << " " << A[k];

system("pause >> void");

system("cls");

}

void GnomeSrt(int i, int j, int *mas)

{

while (i<n)

{

if (mas[i - 1] <= mas[i]) { i = j; j++; }

else

{

int t = mas[i];

mas[i] = mas[i - 1]; mas[i - 1] = t;

i--;

if (i == 0) { i = j; j++; }

}

}

cout << "Отсортированный массив: ";

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

cout << mas[i] << " ";

}

void mainGnome()

{

setlocale(LC_ALL, "Rus");