首页 > 搜索 > 分治矩阵乘法算法设计,算法导论学习——分治矩阵乘法

分治矩阵乘法算法设计,算法导论学习——分治矩阵乘法

互联网 2020-10-22 20:28:28
在线算命,八字测算命理

算法导论学习——分治矩阵乘法

头文件 结构的定义

stdafx.h

// stdafx.h : 标准系统包含文件的包含文件,

// 或是经常使用但不常更改的

// 特定于项目的包含文件

//

 

#pragma once

 

#include "targetver.h"

 

#include

#include

 

 

 

// TODO:  在此处引用程序需要的其他头文件

#include

 

using namespace std;

 

 

#define Maxelem 10

 

//求两个数的最大值

int inline max(int a, int b){

    return a >= b ? a : b;

}

//求三个数的最大值

int inline max(int a, int b, int c){

    return max(max(a, b), c);

}

 

//求min(2^x),ST. 2^x>=number。

int inline L2n(int number){

    if ((number & number - 1) == 0)

    {

        return number;

    }

    else {

        return pow(2, (int)log2(number) + 1);

    }

}

 

//定义矩阵的结构

class Matrix{

 

   

public:

    int data[Maxelem][Maxelem];

    int M, N;

    //以数组复制的方式构造矩阵对象,其中起始位置为0.

    Matrix(int array[Maxelem][Maxelem], int m, int n){

        M = m;

        N = n;

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

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

                this->data[i][j] = array[i][j];

            }

        }

    }

   

    //以数组复制的方式构造矩阵对象,以strat1,end1,strat2,end2为区间

    Matrix(int array[Maxelem][Maxelem], int start1, int end1, int start2, int end2){

        M = end1 - start1 + 1;

        N = end2 - start2 + 1;

        int p = 0, q = 0;

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

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

                data[i][j] = array[start1 + i][start2 +j];

            }

           

        }

           

    }

    //仅构造矩阵,不填充数据

    Matrix(int m, int n) :M(m), N(n){}

 

 

    /*

   打印输出

    */

    void print() const {

        for (int i = 0; i

免责声明:非本网注明原创的信息,皆为程序自动获取互联网,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责;如此页面有侵犯到您的权益,请给站长发送邮件,并提供相关证明(版权证明、身份证正反面、侵权链接),站长将在收到邮件12小时内删除。

相关阅读

一周热门

查看更多