• 最大子数组


    设计思路:

    用一个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

  • 相关阅读:
    对C++虚函数、虚函数表的简单理解
    子数组最大累加和
    和为k的最长子数组及其延伸
    CentOS 安装codeblocks
    CentOS 6 安装chromium
    数组中累加和小于等于k的最长子数组
    数组最大矩形面积
    关于商品买卖最大收益的问题
    数组中只出现一次的数
    TinyHttpd代码解析
  • 原文地址:https://www.cnblogs.com/D9412/p/4388572.html
Copyright © 2020-2023  润新知