2 / 2 / 0
Регистрация: 03.12.2018
Сообщений: 46
1

Алгоритмы сотировки

22.04.2019, 20:35. Показов 301. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток!
Очень нужна помощь!!
Суть задания: написать программу для сортировки массивов слиянием и слиянием под массивов и высчитать время работы.
На данный момент у меня есть это:


#include <iostream>
#include <ctime>
#include <time.h>
#include <cstdlib>

using namespace std;

void PullArray(int* ptrArr, int SizeOfArray);
void ShowArray(int* ptrArr, int SizeOfArray);
void MargeSort (int* ptrArr, int left, int reght);//слияние*
void Marge(int* ptrArr, int b, int e, int m); //слияние под массивов*

int main()
{
setlocale(LC_ALL, "rus");
unsigned int start, finish;
int size;
cout << "Введите размер массива:";
while (!(cin >> size))
{
cin.clear();
while (cin.get() != '\n')
{
cout << "\tНеверно введённые данные.Введите их повторно.";
}
}

cout << "Тестирование Алгоритмов:" << endl;
cout << "________________________" << endl << endl;
int* ptrTest = new int[size];
PullArray(ptrTest, size);
bubbleSort(ptrTest, size);

cout << "Сортировка слиянием" << endl;
MargeSort (ptrTest, left, right);
ShowArray(ptrTest, size);

cout << "Сортировка слиянием под массивов" << endl;
Marge(ptrTest, b, e, m) //слияние под массивов
ShowArray(ptrTest, size);

cout << "__________________________________________" << endl;
cout << endl << "Начало проверки скорости работы алгоритмов" << endl << endl;
cin.get();
bool choice = true;
while (true)
{
cout << "Введите размер массива:";
while (!(cin >> size))
{
cin.clear();
while (cin.get() != '\n')
{
cout << "\tНеверно введённые данные.Введите их повторно.";
}
}

int* Arr = new int[size];

PullArray(Arr, size);
start = clock();
MargeSort (ptrTest, b, e);
finish = clock();
cout << endl << "Время работы сортировки слиянием:" << (double)(finish - start) / CLOCKS_PER_SEC << " сек" << endl;
PullArray(Arr, size);
start = clock();
Marge(ptrTest, b, e, m);
finish = clock();
cout << endl << "Время работы сортировки слиянием под массивов:" << (double)(finish - start) / CLOCKS_PER_SEC << " сек" << endl;
e[] Arr;
Arr = 0;
cout << "_______________________________________________________________________________ _____________" << endl;
cout << "Нажмите 0 ,если хотите прервать сеанс. Если хотите продолжить - введите любой другой символ:" << endl;
cin >> choice;
cout << "_______________________________________________________________________________ _____________" << endl;
}
system("pause");
}


void PullArray(int* ptrArr, int SizeOfArray)
{
srand(time(NULL));
for (int i = 0; i < SizeOfArray; i++)
{
ptrArr[i] = 1 + rand();
}
}

void ShowArray(int* ptrArr, int SizeOfArray)
{
for (int i = 0; i < SizeOfArray; i++)
{
cout << *(ptrArr + i) << " ";
}
cout << endl;
}


void MargeSort (int* ptrArr, int left, int right)//слияние*
{
int b=left;
int e=right;
int pivot = ptrArr [(left + right)/2];
if (b>=e) return;
int m= (b+e)/2;
MargeSort (ptrArr, b, m);
MargeSort (ptrArr, m+1, e);
MargeSort (ptrArr, b, m, e);
}

void Marge(int* ptrArr, int b, int e, int m) //слияние подмассивов
{

int j=b;
m=(b+e)/2;
int k= m +1;//индекс начала второго подмассива
int count = e-n+1;
if (count <=1){
return;
}
int *tmp = new int [count];
for (int i = 0; i< count; ++i)
{
if ((j <m ) && (k<=e))
{
if (ptrArr[i] < ptrArr[k]){
tmp [i] = ptrArr[j];
j++;
}
else {
tmp[i]=ptrArr[k];
k++;
}
}
}




Очень нужна помощь!!! Уже запуталась в край...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2019, 20:35
Ответы с готовыми решениями:

Алгоритмы сотировки
Доброго времени суток!:) Очень нужна помощь. Если программа, но она не работает. Есть куча мелких...

Реализовать алгоритмы построения прямой: простой пошаговый алгоритм и алгоритмы Брезенхема
1. Написать на языке PASCAL программу, реализующую алгоритмы построения прямой: простой пошаговый...

Циклические алгоритмы. Алгоритмы обработки последовательностей чисел
Помогите пожалуйста program Lab_3_1; const x1=1; xn=3; dx=0.2; a=3.9; ...

Циклические алгоритмы. Алгоритмы обработки последовательностей чисел
Помогите пожалуйста... Преподаватель говорит что: 1. Программа считает правильно (за...

1
4063 / 3317 / 924
Регистрация: 25.03.2012
Сообщений: 12,483
Записей в блоге: 1
23.04.2019, 02:21 2
Цитата Сообщение от Marina_99 Посмотреть сообщение
На данный момент у меня есть это:
'nj hf,jnftn& yt hf,jnftn& xnj 'nj&
0
23.04.2019, 02:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.04.2019, 02:21
Помогаю со студенческими работами здесь

Циклические алгоритмы (Алгоритмы с одним циклом)
Доброго времени суток! Помогите пожалуйста написать программы на циклы в Delphi 7, а то я только...

Алгоритмы сортировки массивов.Реализуйте алгоритмы сортировок данных массивов
Задания к лабораторной работе. Выполните приведенные ниже задания. 1. Даны два целочисленных...

Алгоритмы LZ*
Здравствуйте! Вопрос такой: где можно взять описание и принцип работы всех (или большинства)...

TP + Алгоритмы
У меня завалялся архив с курсами по алгоритмам и турбо паскаль. В них подробно описываются язык...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru