数据结构:总概念

先了解一下什么叫数据结构

数据结构:
数据的组织方式,着重于数据之间的关系,研究以下三部分:

  • 数据存储结构 * 数据逻辑结构 * 算法数据
    (也就是数据对象(数据元素–关系–数据结构))
    数据结构三个部分组成
    01、存储结构
    {
  • 顺序存储:相邻的逻辑结点存储在相邻的物理存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现
  • 链式存储:不要求相邻存储,结点间的逻辑关系是由附加的指针表示
  • 索引存储:建立附加的索引标识来表示结点的地址。
  • 散列(哈希)存储:根据结点的关键码直接计算出该结点的存储地址。
    }
    02、逻辑结构
    {
  • 线性结构:{ 线性表,栈,队列,串
  • 非线性结构:{ 树形结构,图形结构,集合结构
    }
    03、算法
    {
  • 特性:有穷性,确定性,可行性,输入,输出
  • 时间复杂度:
/*
 * 分析下面程序段的时间复杂度
 */
(1) int i,sum = 0;                   (1次)
(2) for (i=0;i<n;i++)               (n+1次)
(3) sum=sum+i;                       (n次)
(4) return sum;                      (1次)

 T(n)=2n+3,且T(n)是n数量级的

时间复杂度:(渐进时间复杂度, 只取结果的最高幂):用大O[字母的大写O]表示

 T(n)=2n+3~= n 则时间复杂度为O(n) 
如:T(n)=3n2+2n+1000=O(n2) 

记忆:各种不同数量级对应的值存在着如下关系:
O(1) < O(logn) < O(n) < O(n*logn) < O(n2) < O(n3) < O(2n) < O(n!)

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 课程介绍 先修课:概率统计,程序设计实习,集合论与图论 后续课:算法分析与设计,编译原理,操作系统,数据库概论,人...
    ShellyWhen阅读 2,343评论 0 3
  • 本文涉及更多的是概念,代码部分请参考之前写过的 2 篇博客 基于Javascript的排序算法基本数据结构和查找算...
    faremax阅读 1,264评论 0 2
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,766评论 0 33
  • B树的定义 一棵m阶的B树满足下列条件: 树中每个结点至多有m个孩子。 除根结点和叶子结点外,其它每个结点至少有m...
    文档随手记阅读 13,290评论 0 25
  • 思念,是痛苦,也是一种快乐;思念,是一杯苦咖啡,也是一杯醇厚的美酒;思念,是秋风中的落叶,也是春天艳丽的...
    童心_8c86阅读 799评论 2 6