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

  • 相关阅读:
    Android众说纷纭分辨率
    Android初识Helloworld
    Android从零开始
    PHP使用APC获取上传文件进度
    央行mlf,SLF,PSL,MLF,SLO
    python的lxml解析器
    美国风投行业50年数据揭示的10条VC投资秘密法则
    osx的10款文本编辑器
    nano命令,vi ed pico sed joe emacs jed ex
    修改centos7/osx的MAC地址
  • 原文地址:https://www.cnblogs.com/D9412/p/4388572.html
Copyright © 2011-2022 走看看