Добрый день уважаемые форумчане. Прошу помощи с решением алгоритма быстрой сортировки на с++. Задание из лабораторной, в коде которого специально допушено 4 ошибки. 3 ошибки я нашел, преподаватель говорит осталаась одна, вот я уже больше двух часов разбираюсь, никак не могу понять где. Прошу помощи, очень надо разобратся. Вот код:
#include "iostream"
#include "ctime"
#include "stdlib.h"
#include <cstdlib>
#include "windows.h"
using namespace std;
void myqsort(double *massive, int left, int right);
int main()
{
SetConsoleOutputCP(1251);
// задаем количество элементов сортировки
cout << "Zadayte chislo elementov v massive N=";
int n;
cin >> n;
// выделяем память для массива заданного размера
double *mas=new double[n];
//создаем генератор случайных чисел
srand((unsigned)time(NULL));
//задаем начальные и случайные значения элементов массива
for(int i=0; i<n;>=(double)rand()/(rand()+1);
//определяем начальное время
double t1=clock();
//блок быстрой сортировки по усл неубывания
myqsort(mas,0,n-1);
//определяем конечное время
double t2=clock();
cout << "\n Vrema rascheta = " << (t2-t1)/CLOCKS_PER_SEC << endl;
cin.get();cin.get();cin.get();
return 0;
}
void myqsort(double *mas, int lb, int rb)
{
double tmp;
if((lb+1==rb)&(mas[lb]>mas[rb]))
{
tmp=mas[lb];
mas[lb]=mas[rb];
mas[rb]=tmp;
}
if(lb+1<rb)>=i_right)
{
tmp=mas[i_right];
mas[i_right]=mas[lb];
mas[lb]=tmp;
}
myqsort(mas,lb,i_right-1);
myqsort(mas, i_right+1,rb);
}
}
Очень хочется понять где туплю. Спасибо.
Другие языки программирования и технологии
Проблема с алгоритмом быстрой сортировкой С++
for(int i=0; i<n;>=(double)rand()/(rand()+1);
if((lb+1==rb)&(mas[lb]>mas[rb])) - не то, чтобы ошибка здесь. && уместнее
if(lb+1<rb)>=i_right) отсутствует описание переменной i_right, нет парной скобки
последняя } - лишняя.
Больше не искал ))
if((lb+1==rb)&(mas[lb]>mas[rb])) - не то, чтобы ошибка здесь. && уместнее
if(lb+1<rb)>=i_right) отсутствует описание переменной i_right, нет парной скобки
последняя } - лишняя.
Больше не искал ))
#include <iostream>
using namespace std;
#include <clocale>
#include <windows.h>
#include <ctime>
void founder(double *p, int N);
void qwickSort(double *p, int left, int right);
int main()
{
setlocale(LC_CTYPE, "Russian_Russia.1251");
unsigned const int size = 100;
int n;
double * p = NULL;
p = new double [size];
if (p == NULL)
{
cout << "\a Не достаточно памяти!!! ";
Sleep(2000);
exit(0);
}
founder(p, size);
qwickSort(p, 0, size - 1);
for (n = 0; n < size; n++)
printf(" %.0f ", p[n]);
delete[] p;
p = NULL;
cin.get(); cin.get();
return 0;
}
void founder(double *p, int N)
{
int n;
srand((unsigned) time(NULL));
for(n = 0; n < N; n++)
p[n] = rand();
}
void qwickSort(double *p, int left, int right)
{
int n = left, m = right;
double temp, middle = p[(left + right) / 2];
do
{
while(p[n] < middle && n < right)n++;
while(middle < p[m] && m > left)m--;
if (n <= m)
{
temp = p[n];
p[n] = p[m];
p[m] = temp;
n++;
m--;
}
}
while(n <= m);
if (left < m)qwickSort(p, left, m);
if (n < right)qwickSort(p, n, right);
}
using namespace std;
#include <clocale>
#include <windows.h>
#include <ctime>
void founder(double *p, int N);
void qwickSort(double *p, int left, int right);
int main()
{
setlocale(LC_CTYPE, "Russian_Russia.1251");
unsigned const int size = 100;
int n;
double * p = NULL;
p = new double [size];
if (p == NULL)
{
cout << "\a Не достаточно памяти!!! ";
Sleep(2000);
exit(0);
}
founder(p, size);
qwickSort(p, 0, size - 1);
for (n = 0; n < size; n++)
printf(" %.0f ", p[n]);
delete[] p;
p = NULL;
cin.get(); cin.get();
return 0;
}
void founder(double *p, int N)
{
int n;
srand((unsigned) time(NULL));
for(n = 0; n < N; n++)
p[n] = rand();
}
void qwickSort(double *p, int left, int right)
{
int n = left, m = right;
double temp, middle = p[(left + right) / 2];
do
{
while(p[n] < middle && n < right)n++;
while(middle < p[m] && m > left)m--;
if (n <= m)
{
temp = p[n];
p[n] = p[m];
p[m] = temp;
n++;
m--;
}
}
while(n <= m);
if (left < m)qwickSort(p, left, m);
if (n < right)qwickSort(p, n, right);
}
в алгоритме, причем жесточайше. а еще врете как-то тупо
Похожие вопросы
- Добавить комментарии к коду С++ Быстрая Сортировка
- Не могу сообразить каким алгоритмом задать сортировку, подскажите, пожалуйста
- Алгоритм быстрого фактариала.
- Изучил несколько простых алгоритмов сортировки, осталось изучить быструю и слияние, нужно ли вообще писать эти алгоритмы
- Говорят что готовые алгоритмы сортировок и поиска мало эффективны и не пригодны в использовании
- Теория алгоритмов. Алгоритмы сортировки.
- сортировка массива. какой метод сортировки массива самый быстрый и эффективный?
- какие алгоритмы сортировки есть на С# (С++)?
- Самый оптимальный алгоритм сортировки в плане производительности
- Сортировки, язык Си.