zoukankan      html  css  js  c++  java
  • 最大子数组

    设计思路:

    用一个clock()函数记录程序运行的时间,以此来测试工作效率

    源代码:

    #include<iostream>

    #include<ctime>

    #define N 2000

     

    using namespace std;

     

    void main()

    {

             int a[N];              //整数数组

             int f;                 //数值范围

             int i,j,k;             //控制循环变量

             int sum,max;      //和与最大值

             int m,n;               //记录子数组

             clock_t start, end;    //记录开始和结束的时间

     

             cout<<"请输入数值范围:";

             cin>>f;

     

             start = clock();

     

             srand((unsigned) time(NULL));

             for (i=0;i<N;i++)

             {

                       a[i]=(rand()%2?-1:1)*rand()%f;

                       cout<<a[i]<<"   ";

             }

             cout<<endl;

             max = a[0];

     

             for (i=0;i<N;i++)

             {

                       for (j=0;j<=i;j++)

                       {

                                sum=0;

                                for (k=j;k<=i;k++)

                                         sum=sum+a[k];

                                if (sum>max)

                                {

                                         max=sum;

                                         m=j;

                                         n=i;

                                }

                       }

             }

             end = clock();

     

             cout << "运行时间为:" << double((end - start))/1000 << " 秒" << endl;

     

             cout<<"子数组的最大值为:"<<max<<endl;

             cout<<"子数组是第"<<m+1<<"个数,到第"<<n+1<<"个数。"<<endl;

             cout<<"子数组是:";

             for (i=m;i<=n;i++)

             {

                       cout<<a[i]<<"  ";

             }

             cout<<endl;

     

    }

    运行截图:

    数组大小500

    时间:0.458

    数组大小:1000

    时间:1.813

    数组大小:2000

    时间:9.334

    数组大小:5000

    时间:131.509

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 交换Easy
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法提高 多项式输出
    Java实现 蓝桥杯VIP 算法训练 矩阵乘方
    QT中给各控件增加背景图片(可缩放可旋转)的几种方法
    回调函数实现类似QT中信号机制
    std::string的Copy-on-Write:不如想象中美好(VC不使用这种方式,而使用对小字符串更友好的SSO实现)
  • 原文地址:https://www.cnblogs.com/D9412/p/4388572.html
Copyright © 2011-2022 走看看