• 《数据结构》_1绪论


    数据结构

    • 数据结构是有某一数据对象及该对象中所有数据元素之间的关系组成的数据结构包括数据的 逻辑结构、存储结构、数据的运算三方面的内容。
      • 数据的逻辑结构
        • 线性结构
        • 树形结构
        • 图结构
        • 集合结构
      • 数据的存储结构
        • 顺序存储结构
        • 链式存储结构
        • 索引结构
        • 散列结构
      • 数据的运算
        • 搜索运算
        • 插入运算
        • 删除运算
        • 更新运算
        • ··· ···
    • 抽象数据类型
    ADT 抽象数据类型名
    {
    数据:
          数据元素及其之间关系的定义
    运算:
          运算1(参数表):运算功能描述
          ··· ···        
    }
    • 算法和算法分析
      • 求解步骤:
        • 输入
        • 输出
        • 可行性
        • 确定性
        • 有穷性
      • 衡量的基本标准
        • 正确性:功能和性能
        • 可读性
        • 健壮性:对不适当的输入做出适当的处理
        • 高效性
      • 算法的时间复杂度
        • 影响算法效率的最主要因素是 问题规模
        • 语句频度
        • 渐近时间复杂度O(1)<O(log2n)<O(nlog2n)<O(n2)<O(n3)<O(n!)
        • 参考:https://wenku.baidu.com/view/0a2e0c017dd184254b35eefdc8d376eeaeaa1719.html?rec_flag=default&mark_pay_doc=0&mark_rec_page=1&mark_rec_position=5&mark_rec=view_r_1&clear_uda_param=1&sxts=1527917128884

      • 一些计算题:需要先找出基础语句,然后对其进行分析。
      • T1.
            int i,sum=0,n=100;     //执1次
            for(i=1;i<=n;i++)      //执行n+1次
            {
                sum=sum+i;         //执行n次
            }
        
            System.out.println(sum);  //执行1次  
        
        执行次数:2n+3,渐近时间复杂度O(n)
        
        T2.
            int sum=0,n=100;           //执行一次
            sum=(1+n)*n/2;             //执行一次
            System.out.println(sum);   //执行一次 
        
        执行次数:3,渐近时间复杂度:O(1

        T3.
        void Mult(int a[n][n],int b[n][n],int c[n][n],int a)
            {
        for(int i=0;i<n;i++) //n+1次
                for(int j=0;j<n;j++) //n(n+1)次
        {
        c[i][j]=0; //n²次
        for(int k=0;k<n;k++) //n²(n+1)次
        c[i][j]=a[i][j]b[i][j]//n³次
        }
        }
        执行次数:2n³+3n²+2n+1,渐近时间复杂度:O(n)
        )
        T4.
        i=1;x=0;
        do
        {
        x++; //[log3 n]
        i=3*i; //[log3 n]
        }while(i<n)
        时间复杂度O(log3 n)
        T5.
            y=0;            //1次
        while(n>=y*y)
        y++; //n½次
      • 最好情况、最坏情况
  • 相关阅读:
    算法
    如果业界中不用高级算法和数据结构,那为什么还要学?
    CentOS 7 运行级别切换
    ECharts笔记
    Vue+TypeScript学习
    TypeScript深入学习
    TypeScript基础
    检测数据类型的方法
    前端提高性能的方式
    柯里化
  • 原文地址:https://www.cnblogs.com/WittPeng/p/9125301.html
Copyright © 2020-2023  润新知