weixin_43670526
weixin_43670526
2018-11-11 23:27

C++代码,求大佬解答如何优化这段代码增加运行速度

  • c++
  • 优化

for(int t=0;t<nt;t++) {

            cout<<"\n"<<t;cout.flush();

            for(int i=0;i<nx;i++) {

                    for(int j=0;j<ny;j++) {

                            if(i>0&&i<nx-1&&j>0&&j<ny-1) {

                                    vr[i][j]=(vi[i+1][j]+vi[i-1][j]+vi[i][j-1]+vi[i][j+1])/4.;

                            } else if(i==0&&i<nx-1&&j>0&&j<ny-1) {

                                    vr[i][j]=(vi[i+1][j]+10.+vi[i][j-1]+vi[i][j+1])/4.;

                            } else if(i>0&&i==nx-1&&j>0&&j<ny-1) {

                                    vr[i][j]=(5.+vi[i-1][j]+vi[i][j-1]+vi[i][j+1])/4.;

                            } else if(i>0&&i<nx-1&&j==0&&j<ny-1) {

                                    vr[i][j]=(vi[i+1][j]+vi[i-1][j]+15.45+vi[i][j+1])/4.;

                            } else if(i>0&&i<nx-1&&j>0&&j==ny-1) {

                                    vr[i][j]=(vi[i+1][j]+vi[i-1][j]+vi[i][j-1]-6.7)/4.;

                            }
                    }
            }

            for(int i=0;i<nx;i++) {

                    for(int j=0;j<ny;j++) {

                            if(fabs(fabs(vr[i][j])-fabs(vi[i][j]))<1e-2) fout<<"\n"<<t<<" "<<i<<" "<<j<<" "<<fabs(vi[i][j])<<" "<<fabs(vr[i][j]);

                    }
            }

            for(int i=0;i<nx;i++) {

                    for(int j=0;j<ny;j++) vi[i][j]=vi[i][j]/2.+vr[i][j]/2.;

            }
    }
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

2条回答