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项的次数和系数。

  • 相关阅读:
    python 访问对象的属性与方法
    python 使用类实列化对象
    python 第一个Python类(创建类)
    python 安装第三方模块
    Redux其实很简单(原理篇)
    JavaScript、ES5和ES6的介绍和区别
    Yes,I know the way to learn Ens !
    移动游戏加载性能和内存管理全解析 学习
    内存耗用:VSS/RSS/PSS/USS
    Android性能测试-内存
  • 原文地址:https://www.cnblogs.com/bobodeboke/p/2966979.html
Copyright © 2011-2022 走看看