[数据结构]——基础概念

本文深入探讨了数据结构和算法的区别,数据结构包括数据、数据元素、数据项和数据对象,而算法关注解决问题的步骤。算法具有输入、输出、有穷性、确定性和可行性等特性。在评估算法效率时,主要考虑操作数量的最高次项,以及空间复杂度。示例中展示了如何使用C++定义和操作自定义数据结构。
摘要由CSDN通过智能技术生成

数据结构主要研究非数值计算问题的程序中的操作对象以及它们之间的关系,不是研究复杂的算法。

  • 数据结构是计算机存储、组织数据的方式。

算法是特定问题求解步骤的描述,在计算机中表现为指令的有序序列,算法是独立存在的一种解决问题的方法和思想。

  • 对于算法而言,语言并不重要,重要的是思想。

算法和数据结构的区别:

  • 数据结构只是静态的描述了元素之间的关系,高效的程序需要在数据结构的基础上设计和选择算法

  • 算法是为了解决实际问题而设计的

  • 数据结构是算法需要处理的问题载体

  • 数据结构与算法相辅相成

一、数据结构中的基本概念

数据:程序的操作对象,用于描述客观事物。

  • 数据是一个抽象的概念,将其进行分类后得到程序设计语言中的类型,如:int、float、char

数据元素:组成数据的基本单元。

数据项:一个数据元素由若干数据项组成。

数据对象:性质相同的数据元素的集合(比如:链表、数组)

#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;

//声明一个结构体类型
struct MyTeacher { //一种数据类型
	char name[32];
	char title[32];
	int age;
	char addr[128];
};

int main(void) {
	struct MyTeacher t1; //数据元素
	struct MyTeacher tArray[30]; //数据对象
	memset(&t1, 0, sizeof(t1));
	
	strcpy(t1.name, "name"); //数据项
	strcpy(t1.addr, "addr"); //数据项
	strcpy(t1.title, "title"); //数据项
	t1.age = 1;
	
	return 0;
}

二、算法特性

  • 输入:算法具有0个或者多个输入
  • 输出:算法至少有1个或者多个输出
  • 有穷性:算法在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以再接收的时间内完成
  • 确定性:算法中的每一步都有确定的含义,不会出现二义性
  • 可行性:算法的每一步都是可行的,也就是说每一步都能够执行有限次数完成

三、算法效率评估

1、怎么判断一个算法的效率?(规则)

  • 判断一个算法的效率时,往往只需要关注操作数量的最高次项,其他次要项和常数项可以忽略
  • 在没有特殊说明时,我们分析的算法的时间复杂度指的都是最坏时间复杂度
  • 只有常数项记作 1
  • 操作数量的估算可以作为时间复杂度的估算

2、算法空间复杂度

算法的空间复杂度并不是计算所有算法所占的空间,而是使用的辅助空间的大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Star星屹程序设计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值