数据结构与算法(一)

来源:互联网 发布:双十一购物数据 编辑:程序博客网 时间:2024/06/04 19:07

数据结构:数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。


数据结构分为逻辑结构和物理结构。


1.逻辑结构:数据对象中数据元素之间的相互关系

a.集合结构,集合结构中的数据元素除了同属一个集合外,之间没有其他关系

b.线性结构,线性结构中的数据元素之间是一对一的关系

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

d.图形结构,多对多的关系

2.物理结构:数据的逻辑机构在计算机中的存储形式,实际上研究的就是如何把数据元素存储到计算机的存储器中,

存储结构形式有两种:顺序存储和链式存储

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

b.链式存储结构:把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。因此需要通过一个指针存储数据元素的地址,通过地址就可以找到相关数据元素的位置


算法:指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制

算法特征:

1.输入:算法具有0个或多个输入

2.输出:算法至少要有1个或多个输出

3.有穷性:算法在执行有限的步骤之后,自动结束而不会无限循环,并且每一个步骤在可接受的时间内完成

4.确定性:算法的每一个步骤都有确定的含义,不会出现二义性

5.可行性:算法的每一步都必须是可行的,也就是说每一步都能够通过有限次数完成


算法效率:

1.时间复杂度:随着规模n的增大,算法执行时间的增长率和函数f(n)的结果的增长率相同。

一般情况下,随着输入规模n的增大,f(n)增长最慢的算法为最优算法

常见时间复杂度

a.常数阶 O(1)

b.线性阶 O(n)

c.平方阶 O(n^2)

d.对数阶 O(logn)

e.nlogn阶 O(nlogn)

f.立方阶 O(n^3)

g.指数阶 O(2^n)

以上所消耗时间依次为:O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) O(n^3) < O(2^n) <O(n!) < O(n^n)


2.空间复杂度:通过计算算法所需的存储空间实现。

原创粉丝点击