数据结构——概述

数据结构——概述

一、数据结构概述
1.定义:是相互之间存在一种或者多种特定关系的数据元素的集合。
2.分类
(1)集合:数据在结构上只是同属同一个集合的关系,没有其他结构关系。
(2)线性结构:元素之间存在一对一的关系。例如数组、链表等、
(3)树形结构:元素之间存在一对多的关系。
(4)图状结构或网状结构:元素之间存在多对多的关系。
以上是根据数据元素之间的逻辑关系进行分类,因此可以说是数据之间的逻辑结构。如果按照元素在计算机中的表示成为数据的物理结构,可以分为顺序存储结构链式存储结构。其中,顺序存储结构的元素其在计算机的内存上是连续存储的,反之,则为链式存储结构。

二、算法概述
1.特性
(1)有穷性——在有限的时间内完成。
(2)确定性——不会产生歧义,每次运行相同的输入必须得到相同的结果。
(3)可行性——可以通过基本运算有限次数实现。
(4)输入——一个算法可以零个或多个输入。
(5)输出——一个算法有一个或多个输出。
2.算法效率
时间复杂度和空间复杂度
时间复杂度:常量阶<对数阶<线性阶<平方阶<指数阶

示例:将A数组和B数组的元素合并为一个C数组(A、B数组中共有的数字不重复合并)。
时间复杂度为O(n*n)。

#include<stdio.h>
#include<string.h>
int A[5] = {1,3,4,6,8};
int B[6] = {3,5,2,6,7,3};

/****将A和B的元素合并到数组C中****/
void main()
{
	int Length_A = sizeof(A) / sizeof(A[0]);
	int Length_B = sizeof(B)/ sizeof(B[0]);
	int i,j,n,m = 0;
	int C[20];

	memcpy(C,A,5*sizeof(int));

	for(j=0;j<Length_B;j++)
	{
		n = 0;
		for(i = 0; i < Length_A; i++)
		{
			if(B[j] == A[i])
			{
				n++; //标记A和B中均有的元素个数
			}
		}
		if(0 == n)
		{
			m++; //标记新增元素的个数
			*(C + Length_A-1+m)=B[j];			
		}
	}
	for(i = 0; i < Length_A + m; i++)
	{
		printf("%d,",*(C+i)); //{1,3,4,6,8,5,2,7,}
	}
	getchar();
}

该文章只是用来监督自己学习,有不对的地方欢迎指正批评

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据引用,这篇博客是关于一位学生利用整个暑假的时间来学习《数据结构与算法》课程并且持续更新的。而引用是一份关于Java数据结构与算法的学习笔记,涵盖了数据结构与算法的概述、分类以及算法分析的内容。引用给出了数据结构的官方解释和大白话解释,以及数据结构的分类和物理结构的介绍。 所以,关于数据结构与算法的笔记,你可以参考这些资源来了解数据结构的概念、分类和物理结构,以及算法的分析和时间复杂度等内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [数据结构与算法——学习笔记汇总](https://blog.csdn.net/qq_42025798/article/details/118864568)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Java数据结构与算法1-概述学习笔记](https://blog.csdn.net/qq_45498432/article/details/124067892)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值