Всем привет. Нужно сделать сортировку разделением. Написал вот такой код:
Код
#include<stdafx.h>;
#include<iostream>;
#include<stdlib.h>;
using namespace std;
int n, a[];
void quicksort(int* a_arr, int first, int last, int opor)
{
int opor_zna, f, l,c;
double opor_index;
f = first;
l = last;
opor_zna = a_arr[opor];
opor_index = opor;
while (a_arr[f] < opor_zna) f++;
while (a_arr[l] > opor_zna) l--;
if ((f != opor_index) && (l != opor_index))
{
c = a_arr[f];
a_arr[f] = a_arr[l];
a_arr[l] = c;
quicksort(a_arr,f , l, opor);
}
else
if ((f = opor_index) || (l = opor_index))
{
if ((f = opor_index) && (l = opor_index))
{
}
else
if ((l = opor_index) && (f!=opor_index))
{
c = a_arr[f];
a_arr[f] = a_arr[l];
a_arr[l] = a_arr[f];
opor = f;
quicksort(a_arr, f, l, opor);
}
else
if ((f = opor_index) && (l!=opor_index))
{
c = a_arr[f];
a_arr[f] = a_arr[l];
a_arr[l] = a_arr[f];
opor = l;
quicksort(a_arr, f, l, opor);
}
}
}
void main()
{
int k=0;
cout << "Vvedite kol-vo elementov massiva: ";
cin >> n;
for (k = 0; k < n; k++)
{
cout << "Vvedite znachenie" << k << "-ogo elementa: ";
cin >> a[k];
cout << endl;
}
quicksort(a, 0, n, n/2);
cout << "Noviy massiv: ";
for (k = 0; k < n; k++)
{
cout << a[k];
}
}
Но почему-то выдает две, связанные между собой, ошибки.
Помогите, пожалуйста.Добавлено (06 декабря 2014, 04:24)
---------------------------------------------
Уже решил проблему)