算法性能评价指标+线性表

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

时间复杂度一般利用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项的次数和系数。

 

posted @ 2013-03-18 22:52  bobo的学习笔记  阅读(487)  评论(0编辑  收藏  举报