您的位置:首页 > 理论基础 > 数据结构算法

数据结构与算法(一)

2016-04-09 12:19 211 查看
一 1 逻辑结构:

  a : 集合结构 数据元素除了同属于一个集合外,它们之间没有其他关系

  b : 线性结构 数据元素之间一对一的关系

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

  d : 图形结构 数据元素之间是多对多的关系

  2 物理结构

  a : 顺序存储结构 是把数据结构存放在地址连续的存储单元里,数据间的逻辑关系与物理关系是一致的

  b : 链式存储结构 是把数据结构存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的

二 算法大O推导

  1 : 用常数1代表所有加法常数(执行时间恒定)

  2 : 在修改后的运行次数函数中,只保留最高阶层

  3 : 如果最高阶层存在且不是1,则去除与这个项相乘的常数

  

  a 常数阶

    int n=100,sum=0; //一次

    sum = (1+n)*n/2; //一次

    时间复杂度O(1)

  b 线性阶

    for(i=0;i<n;i++){/*执行时间复杂度为O(1)的语句*/} //n次

    时间复杂度O(n)

  c 对数阶

    int count=1;

    while(count<n){ count = count*2 }

    时间复杂度O(logn)

  d 平方阶

    for(i=0;i<n;i++){ //n次

      

      for(j=0;j<n;j++){//n次

      }

    }

  时间复杂度O(n^2)

  常见时间复杂度 O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: