资讯专栏INFORMATION COLUMN

数据结构的基本概念

channg / 814人阅读

摘要:数据结构是数据元素之间的关系是复杂数据的组织方式。数据结构三要素数据结构三要素逻辑结构存储结构数据操作算法逻辑结构集合线性树形网状图是数据元素的有限集,是上关系有限集存储结构数据存储基本要求存储元素必须反映数据元素本身及元素之间的逻辑关系。

数据结构(Data Structure)是数据元素之间的关系,是复杂数据的组织方式。

1.数据结构三要素

数据结构三要素: 逻辑结构 存储结构 数据操作(算法)

逻辑结构

1.集合
2.线性
3.树形
4.网状(图)

Data_Structure =(D,R);

D是数据元素的有限集,R是D上关系有限集

存储结构

数据存储基本要求:存储元素必须反映数据元素本身及元素之间的逻辑关系。
对大量数据,必须有高效存储方法。

1.顺序存储
2.链式存储

数据操作(算法)

如最基本操作:增删查改。

2.抽象数据类型与算法

“抽象”的意义在于数据类型的数学抽象特性。

1.1什么是算法:最大公约数

input: unsigned int m,n

output: m,n的最大公因数
a. 求余数 r=mod(n/m) (0<=r

1.2算法方略

1.穷举
2.递推与递归
3.分而治之
4.回溯
5.贪心
6.动态规划

1.3算法性能
正确性、可读性、健壮性、效率
算法复杂性:时间复杂度(cpu执行时间)、空间复杂度(占用内存)
1.4时间复杂度分析
Hanoi问题
A、B、C三个柱子,A柱上有n个大小不一的盘子,盘子由大到小从下到上放置,要求将A柱上的盘子移到C柱上,要求如下:
一次只能移动一只盘子;
可以借助三根柱子,但任何时候都不允许大盘子在小盘子上面

时间复杂度分析:
T(n)=2T(n-1)+1
T(1)=1
=>T(n)=

算法设计(第一个塔为初始塔,中间的塔为借用塔,最后一个塔为目标塔):

public void hanoi(int n,char A,char B,char C){
if(n==1) move(A,C);
    else{
       hanoi(n-1,A,C,B);//(n-1)个盘子A=>B
       move(A,C);
       hanoi(n-1,B,A,C);//(n-1)个盘子B=>C
    }
}

转载请注明出处

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67554.html

相关文章

  • Lucene解析 - 基本概念

    摘要:基本概念在深入解读之前,先了解下的几个基本概念,以及这几个概念背后隐藏的一些东西。如图是一个内的基本组成,内数据只是一个抽象表示,不代表其内部真实数据结构。即词典,是根据条件查找的基本索引。 前言 Apache Lucene是一个开源的高性能、可扩展的信息检索引擎,提供了强大的数据检索能力。Lucene已经发展了很多年,其功能越来越强大,架构也越来越精细。它目前不仅仅能支持全文索引,也...

    sunnyxd 评论0 收藏0
  • Lucene解析 - 基本概念

    摘要:基本概念在深入解读之前,先了解下的几个基本概念,以及这几个概念背后隐藏的一些东西。如图是一个内的基本组成,内数据只是一个抽象表示,不代表其内部真实数据结构。即词典,是根据条件查找的基本索引。 前言 Apache Lucene是一个开源的高性能、可扩展的信息检索引擎,提供了强大的数据检索能力。Lucene已经发展了很多年,其功能越来越强大,架构也越来越精细。它目前不仅仅能支持全文索引,也...

    appetizerio 评论0 收藏0
  • 熬夜爆肝!C++核心STL容器知识点汇总整理【3W字干货预警 建议收藏】

    摘要:拷贝构造函数示例构造无参构造函数总结容器和容器的构造方式几乎一致,灵活使用即可赋值操作功能描述给容器进行赋值函数原型重载等号操作符将区间中的数据拷贝赋值给本身。清空容器的所有数据删除区间的数据,返回下一个数据的位置。 ...

    wayneli 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<