我制作了一个程序,可以对用户给定的大小数组进行排序。在这里,我使用了冒泡排序算法。问题是直到100000个输入它都可以正常工作,但是当我给数组的大小等于1000000时程序崩溃。是什么原因??是因为我的笔记本电脑有限吗?任何解决方案表示赞赏。编辑:我使用了调试器,它显示错误:“程序接收到的信号SIGSEGV,堆栈跟踪位于“调用堆栈”选项卡中。”
#include<iostream>
#include<cstdlib>
using namespace std;
void S(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
void the_gen(int num)
{
srand(1000);
int A[num];
for (int i= 0; i < num; i++)
{
A[i]=(rand()%10000);
}
int flag=0;
int length_of_array=num;
while(length_of_array>1)
{
for(int i=1;i<=length_of_array-1;i++)
{
if(A[i-1]>A[i])
{
S(A[i-1],A[i]);
}
flag=i;
}
length_of_array=flag;
}
cout<<endl;
cout<<"After Sorting"<<endl;
cout<<"[";
for(int i=0;i<num;i++)
{
cout<<A[i]<<",";
}
cout<<"]";
}
int main()
{
int n;
while(n!=0)
{
cout<<"Press 1 to try"<<endl;
cout<<"Press 0 to exit"<<endl;
cin>>n;
if(n==1)
{
cout << "Size of array:" << endl;
int size_of_array;
cin >> size_of_array;
the_gen(size_of_array);
}
}
}