zoukankan      html  css  js  c++  java
  • 数据构造方法

    以最大连续子序列和算法为例。

    算法源代码:

     1 #include<bits/stdc++.h>
     2 #define N 1000000
     3 using namespace std;
     4 
     5 int n;
     6 int a[N],dp[N];
     7 int MAXN=-(1<<30);
     8 
     9 int main(){
    10     freopen("data.out","r",stdin);//重定向 
    11     cin>>n;
    12     for(int i=1;i<=n;i++){//读入数据 
    13         cin>>a[i];
    14     }
    15     dp[1]=a[1];//边界 
    16     for(int i=2;i<=n;i++){//核心代码 
    17         dp[i]=max(a[i],dp[i-1]+a[i]);//状态转移方程 
    18         MAXN=max(MAXN,dp[i]);//更新最优解 
    19     }
    20     cout<<MAXN;
    21     return 0;
    22 }

    数据生成代码(生成-50~49之间随机数据)

     1 #include<bits/stdc++.h>
     2 #define N 1000000 //数据规模(可调) 
     3 using namespace std;
     4 int main (){
     5    freopen("data.out","w",stdout);//重定向 
     6    int i,j;
     7    srand( (unsigned)time( NULL ) );//随机数种子 
     8    cout<<N<<endl;
     9    for(i=0;i<N;i++){//生成随机数 
    10       j= rand()%100-50;
    11       cout<<j<<" ";
    12    }
    13    return 0;
    14 }

    算法时间复杂度O(N),数据规模100w时运行时间大约0.65s,但是很明显还是不能支持数据规模1000w情况

    注意:

    1.两个代码中重定向的文件名称要保持一致,且两个cpp文件在同一文件夹下。

    2.使用时先执行下面代码,再执行上面代码,即可输出结果,打开重定向文件可查看生成数据。

  • 相关阅读:
    如何配置android的adb环境变量
    react中 如何异步展示后台接口的提示消息
    java doc 相关
    linux 停止多个 进程...
    maven 打包 war 包含 WEB-INF/lib 目录
    对 ArrayList 进行分页.
    docker 磁盘清理 相关
    vue 在 html 中自定义 tag
    docker 限制 容器内存 使用
    mysql 基本语句
  • 原文地址:https://www.cnblogs.com/Wag-Ho/p/14824066.html
Copyright © 2011-2022 走看看