zoukankan      html  css  js  c++  java
  • 算法性能评价指标+线性表

    衡量算法的性能指标:时间复杂度、空间复杂度。

    时间复杂度一般利用Big-O计数法,只要取其高次方即可。

    时间复杂度的排序为O(1)《O(log2(n))<O(n)<O(nlog(n))<O(n平方)<O(n立方)<O(2的n次方)<O(n的阶乘)<O(n的N次方)

    在java中线性表是利用数组来实现(ArayList);

    1,矩阵相乘的代码

    /**
     * 下面代码实现矩阵的相乘
     */
        public static int[][] productMetrics(int[][] a,int[][] b){
            int rowNum=a.length;
            int columnNum=b[0].length;
            int sum;
            if(a[0].length!=b.length){
                return null;
            }
            int[][] c=new int[rowNum][columnNum];
            for(int i=0;i<a.length;i++){
                for(int j=0;j<b[0].length;j++)
                {
                    sum=0;
                    for(int k=0;k<a[0].length;k++){
                    sum+=a[i][k]*b[k][j];
                    }
                    c[i][j]=sum;
                }
            }
            return c;
        }

    2,稀疏矩阵的存储

    一般而言,如果矩阵中有超过半数的元素为0那么这个矩阵就可以称之为稀疏矩阵,可以采用A(i,j,value)的方法存储为A(0:n,1:3)的形式来存储,其中n为原来矩阵中非0元素的个数。A(0,0)可以存储行数,A(0,1)可以存储列数,A(0,2)可以存储非0元素的个数。

    3,多项式表示法

       如果是只有一个变量的n次多项式,可以利用一个n+1的一维数组存储,若其中有M个非0元素,可以用(2m+1)个一维数组存储。此时只是存储非0项的次数和系数。

  • 相关阅读:
    poj3686 Windys
    poj3155 Hard Life
    luoguP2774 方格取数问题
    poj3469 Dual Core CPU
    poj3281 Dining
    luogu P3410 拍照
    离散化
    最短路(SPFA)
    lower_bound && upper_bound
    gcd
  • 原文地址:https://www.cnblogs.com/bobodeboke/p/2966979.html
Copyright © 2011-2022 走看看