算法的时间复杂度

本文探讨了数据结构的基本概念,包括数据元素、数据项和抽象数据元素,强调了逻辑结构与物理结构的区别。同时,文章深入介绍了算法的重要性,特别是算法的时间复杂度分析,阐述了增长率的判断原则,帮助读者理解算法效率的评估标准。
摘要由CSDN通过智能技术生成

目录

数据:

数据元素:

表示一个事物的一组数据

数据项:

构成数据元素的数据成为该数据元素的数据项。

抽象数据元素:没有实际含义的数据元素。

数据的逻辑结构:数据元素之间的相互联系方式。

数据的存储结构(物理结构):

算法:描述求解问题方法的操作步骤集合。也就是解决问题的方法,只不过用c语言来实现。

算法的五个重要:

算法的设计规则:

时间复杂度:

增长率的判断:

数据结构:

数据的操作,数据的存储结构,数据的逻辑结构

数据:

人们利用文字符号,数字符号,和其他规定的符号对现实世界的事物及其活动所作的抽象描述

数据元素:

表示一个事物的一组数据

数据项:

构成数据元素的数据成为该数据元素的数据项。

                   数据项姓名年龄性别
1Y13M
2Z17F
3L12M
4R19M

这个表格里有四个数据元素,就像“1”这个数据元素是由“姓名”,“年龄”,“性别”这些数据项的一组数据构成。

编程就是利用结构体来实现:

struct student{
char name[10];
int age;
char sex[3];
};

抽象数据元素:

没有实际含义的数据元素。

在编程是任何数据元素都要有指定的数据类型,由于抽象数据元素没有实际含义所以,我们采取DataType 表示,而DataType 可通过预先定义“typedef”来实现。

数据的逻辑结构:

数据元素之间的相互联系方式。

线性结构树状结构图结构

线性:除了最前面和最后面的,其余每个数据元素都只有一个前驱一个后继

树状除了根结点,其余元素都是只有一个前驱和零个或多个后继

每个数据元素都有零个或多个前驱和后继。

数据元素只有符合线性结构的才称为线性结构,其余都是非线性结构。(这是另一种分类方法)

数据的存储结构(物理结构):

数据元素在计算机中的存储方式

顺序存储结构(利用数组)链式存储结构(利用指针)

顺序:把数据元素存储在一块连续地址空间的内存中,特点:在逻辑上相邻在物理上也相邻。

链式:利用指针把相互直接关联的结点链接起来,特点:在逻辑上相邻在物理上不一定相邻。

数据的操作一种数据类型数据允许进行的某种操作。

类型:一组值的集合

数据类型:是指一个类型和定义在这个类型上的操作的集合。(值和处理函数的总称)(int类型 不仅表示1,2,3,4,这样的值,还表示+,-,*,/,……这样的操作)

抽象数据类型:一个逻辑概念上的类型和这个类型上的操作(一个数学模型和定义在数学模型上的操作的集合)

算法:

描述求解问题方法的操作步骤集合。也就是解决问题的方法,只不过用c语言来实现。

算法的五个重要:

1.有穷性 2.确定性 3.可行性 4.有输入 5.有输出

算法的设计规则:

1.正确性 2.可读性 3.健壮性

算法的时间复杂度分析采取O(f(n))表示,算法的时间复杂度用T(n)表示。

算法的效率:高时间效率和高空间效率。

时间复杂度:

当T(n)与n无关时,则T(n)=O(1);线性关系时,T(n)=O(n);平方关系时,T(n)=O(n^2);依次类推,O(n^3),O(lbn),O(lgn),O(2^n)等,则f(n)=an^2+bn^3<=cn^3其中a,b,c都为常数,所以T(n)=O(n^3)。

增长率的判断:

常<对数(lb=以2为底数的对数)<线性<线性对数阶<平方阶<立方阶<k次方阶<指数。大概率是这样,可以按上面的类型进行分类判断。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值