标签:pre 简单 system 长度 == 总结 最大值 时间复杂度 16px
1 #include <iostream> 2 #include<stdlib.h> 3 #include<time.h> 4 using namespace std; 5 6 int main() 7 { 8 int i; 9 int n; 10 int *a; 11 int max = 0; 12 int b = 0; 13 14 cout<<"请输入数组元素个数:"<<endl; 15 cin>>n; 16 a=new int[n]; 17 srand(time(NULL)); 18 cout<<"数组为:"<<endl; 19 for (i = 0; i<n; i++) 20 { 21 a[i] = rand()%2001-1000 ; 22 } 23 for (i = 0; i<n; i++) 24 { 25 cout << a[i] << ‘\t‘; 26 } 27 cout << endl; 28 29 for (i = 0; i < n; i++) 30 { 31 b += a[i]; 32 if (b < 0) 33 b = 0; 34 if (b > max) 35 max = b; 36 } 37 if (max == 0) 38 { 39 max = a[0]; 40 for (i = 0; i < n; i++) 41 { 42 if (max < a[i]) 43 { 44 max = a[i]; 45 } 46 } 47 } 48 cout <<"最大子数组为:"<< max << endl; 49 system("pause"); 50 return 0; 51 }
结果截图:
溢出测试:
为了测试要求2的问题,我们在取数的时候对其进行了乘4294967296的操作,即将随机函数写成a[i] = rand()*4294967296 ,使数组内的元素可以越界。
结果如下:
可以看出程序有溢出时,运行结果会使每个元素显示为0,程序出错。
总结:当我们想要处理的数组元素个数太多(如1000个)时,不可避免的就会使程序的运算时间增长很多,这让我们意识到,在进行大量数据处理的时候,认真考虑所用算法的时间复杂度,从而选择相对简单的算法的重要性,不止可以提高效率,还能降低出错率。
合作美图:
标签:pre 简单 system 长度 == 总结 最大值 时间复杂度 16px
原文地址:https://www.cnblogs.com/guantianhuan/p/9787059.html