码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构学习绪论

时间:2017-11-18 13:43:15      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:问题   class   情况   复杂度   应该   相关   事前   结构   元素   

概念

数据的概念

  • 数据元素
    组成数据的最基本单位
  • 数据项
    一个数据由多个数据项组成
  • 数据对象
    性质相同的数据元素组成的集合

数据结构

数据结构:是指数据对象中数据元素之间的关系

逻辑结构

  • 集合结构
    数据元素之间没有特别关系,仅同属于一个集合

  • 线性结构
    数据元素之间是一对一的关系

  • 树形结构
    数据元素之间存在一对多的层次关系

  • 图形结构
    数据元素间是多对多的关系

物理结构

  • 顺序存储
    将数据存储在地址连续的存储单元里面

  • 链式存储
    将数据存储到任意的储存单元里面,通过地址保存的方式找到相关联的数据元素

算法

算法:特定问题求解步骤的描述

算法的特性

  • 正确性
    算法对于合法数据能够得到满足要求的结果;能处理非法输入,得到合理的结果;对于边界数据和压力数据都能得到满足

  • 可读性
    算法要方便阅读、理解和交流

  • 健壮性
    算法不应该产生莫名其妙的结果

  • 性价比
    利用最少的资源得到满足要求的结果

算法和数据结构间关系

程序 = 数据结构 + 算法
算法是为了解决实际问题而存在
数据结构是算法处理问题的载体
数据结构与算法相辅相成,共同解决问题

算法效率的度量

  • 事后统计法
    比较不同算法对同一组输入数据的运行处理时间
    缺陷:不容易准确度量算法的效率

  • 事前分析估算算法
    通过操作数量度量算法的效率

算法的时间复杂度

算法效率主要通过时间复杂度进行判断
大O表示法用于描述算法的时间复杂度,它只关心操作数的最高次项

算法效率的度量

  • 常见时间复杂度的比较
    O(1) < O(log n) < O(n) < O(n*log n) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
    当时间复杂度大于O(n^3)时,即使n的值很小工程上也不接受
    一般在分析算法时,重点考虑在最坏情况下的时间复杂度
    算法重点关心时间复杂度

  • 算法的空间复杂度也适用于大O表示法
    空间换时间策略是开发中常用的策略

数据结构学习绪论

标签:问题   class   情况   复杂度   应该   相关   事前   结构   元素   

原文地址:http://www.cnblogs.com/maximum-wong/p/7856392.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!