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

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

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

 

你可能感兴趣的:(线性表)