【问题标题】:Matrix Big O Notation矩阵大 O 表示法
【发布时间】:2015-07-03 07:15:36
【问题描述】:

我在为下面的代码计算大 O 表示法时遇到问题...我知道如果不知道矩阵的大小它将是 O(n^3),但因为这是 16 x 16个矩阵(即大小已知)是否使其成为O(1)?

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define SIZE 16
int main()
{
        float matrix1 [SIZE][SIZE];
        float matrix2 [SIZE][SIZE];
        float result  [SIZE][SIZE];

        srand(time(NULL));
        int s,j,k=0;

        //Generating and displaying matrix 1
        printf("Matrix 1\n");

        for(s=0; s<SIZE;s++)
        {
            for(j=0;j<SIZE;j++)
            {
                matrix1[s][j] = ((float)rand()/RAND_MAX)*10;
                printf("%.3f\t" ,matrix1[s][j]);
            }
            printf("\n");
        }

       //Generating and displaying matrix 2
       printf("\n\nMatrix 2\n");

       for(s=0; s<SIZE;s++)
        {
            for(j=0;j<SIZE;j++)
            {
                matrix2[s][j] = ((float)rand()/RAND_MAX)*10;
                 printf("%.3f\t" ,matrix2[s][j]);
            }
            printf("\n");
        }

        //Generating and displaying Result Matrix
        printf("\n\nResult Matrix\n");

        for(s=0;s<SIZE;s++)
        {
            for(j=0;j<SIZE;j++)
            {
                float sum=0.0;
                for(k=0;k<SIZE;k++)
                {
                    sum=sum+(matrix1[s][k]*matrix2[k][j]);
                }
                result[s][j]=sum;
                printf("%.3f\t" ,result[s][j]);
            }

            printf("\n");
        }

    fflush(stdin);
    getchar();
    return 0;
}

【问题讨论】:

  • O(1),但有一个 huge 常量被 big-oh 符号隐藏,并且只能与其他乘法 16x16 矩阵的算法进行有意义的比较。
  • 如果事先知道大小、固定且可以忽略不计,您几乎不必关心 Big-O 符号
  • 感谢您的帮助。我很怀疑,因为我需要在我的学校项目中提到它。再次感谢!

标签: matrix big-o


【解决方案1】:

时间复杂度是算法运行所花费的时间,是表示输入的字符串长度的函数

给定的矩阵长度 = SIZE * SIZE * SIZE。

所以时间复杂度 = O(SIZE * SIZE * SIZE)(假设 SIZE = n)

时间复杂度为 O(n^3)。

这里的问题是 SIZE 是预定义的。因此它成为一个常数

我们消除了采用 Big-Oh 符号的常量。因此时间复杂度将是 T(n) = C^3 = O(1)(其中 C 是一个常数)

【讨论】:

    猜你喜欢
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    相关资源
    最近更新 更多