0
Я делаю QuickSort, но я получаю ошибку bad_alloc(). Иногда код работает отлично, но некоторое время я получаю ошибку. Программа работает отлично и делает сортировку правильно, но только тогда, когда она запущена, но s из 4-х раз это дало мне ошибку _alloc. так в чем проблема ???????bad alloc in QuickSort
#include <iostream>
using namespace std;
void quicksort(int *a,int,int);
int main()
{
int i,j,*a;
a = new int[j];
cout<<"Enter the total element:";
cin>>j;
for(i=0;i<j;i++){
cout<<"Enter element:";cin>>a[i];
}
quicksort(a,0,j-1);
cout<<"After sorting."<<endl;
for(i=0;i<j;i++){
cout<<a[i]<<endl;
}
return 0;
}
void quicksort(int *a,int u,int d){
int key = a[u];
int upper = u;
int lower = d;
while(key>a[u] && u<lower){
u++;
}
while(key<a[d] && d>upper){
d--;
}
if(u<d){
swap(a[u],a[d]);
quicksort(a,upper,lower);
}
if(u>=d){
swap(key,a[d]);
if(upper!=d)
{
quicksort(a,upper,d-1);
}
if(d!=lower)
{
quicksort(a,d+1,lower);
}
}
}
'j' в этой точке неинициализирован с неопределенным значением. – 1201ProgramAlarm