算法和数据结构基础知识

简介: 计算机二级必考的知识,选择题前十题是不管考任何计算机都要学的基础知识,这篇文章写的是公共基础知识的算法和数据结构。算法、数据结构的知识。


算法基本特征 :

算法:是指解题方案的准确而完整的描述。(算法不等于程序)

算法应该具有以下的特性:

       可行性:在设计一个算法时,必须考虑他的可行性。

       确定性:算法中的每个步骤必须是明确定义的,不允许模棱两可。

       有穷性:算法必须在有限的时间内做完,必须在执行有限个步骤之后终止

       足够的情报:是指算法有一定的输入数据和必须要有输出结果

算法的基本要素:

对数据对象的运算和操作:
算术运算、逻辑运算、关系运算、数据传输

算法的控制结构:
算法中各操作之间的执行顺序;

描述算法的工具通常有传输流程图、N-S结构化流程图、算法描述语言等;

一个算法一般可以用顺序、选择(分支)、循环(重复)三种基本结构组合而成;

时间和空间复杂度:

       算法的时间复杂度: 是指执行算法所需要计算工作量,可以用算法所执行的基本运算次数度量。((时间复杂度)计算工作量是指算法执行的基本运算次数)

       算法的空间复杂度:是指执行算法所需要的内存空间。包括算法程序、输入的初始数据以及算法执行过程中需要的额外空间。(算法的空间复杂度是指算法在执行过程中需要的存储空间)

       算法的时间复杂度和算法的空间复杂度是相互独立的。

(算法的时间复杂度和空间复杂度就像人的年龄和性别,虽然都是人的属性,但却没有相对的联系,不能说这个人岁数大就是女性,不能说这个人岁数小就是男性。)

数据结构

数据:需要处理的数据元素的集合,一般来说,这些数据元素,具有某个共同特征。

数据元素是数据的基本单位,即数据集合中的个体。

有时一个数据元素可由若干数据项(Data ltem)组成。数据项是数据的最小单位。

(数据元素是数据的基本单位,数据项是数据的最小单位)

结构:所谓“结构”,是集合中各个数据元素之间存在的某种关系(或联系)

数据结构:是指相互有关联的数据元素的集合。

数据结构的分类:

逻辑结构:

线性结构:线性表,栈,队列
非线性结构:数,图
存储结构:

顺序存储
链式存储
运算:

插入,删除,查找,排序

数据结构的逻辑结构:指反应数据元素之间的逻辑关系(即前后事件关系)的数据结构。

线性结构与非线性结构:

       线性结构(线性表):

有且只有一个根节点,它无前件
每一个节点最多有一个前件,也最多有一个后件。
例:春→ 夏→ 秋→ 冬  (春是夏的前件,秋是夏的后件,他们都最多有一个前件,也最多有一个后件)能用一条线把所有的数据元素串起来的

       非线性结构:

不满足以上连个条件的数据结构称为非线性结构,非线性结构主要是指树形结构和网状结构。

数据结构的存储结构:

又称为数据的物理结构,是数据的逻辑结构在计算机存储空间中的存放方式

存储结构分为:

       顺序存储结构:这种存放方式主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里

       链式存储结构:每一个结点至少包含一个指针域   ,用指针的指向来提现数据元素之间在逻辑上的联系。

       一种逻辑结构可以有多种存储结构、不同的存储结构其数据处理的效率不同。

考过的知识点:

1.数据的存储结构是数据的逻辑结构在计算机中的表示。

2.程序执行的效率与数据的存储结构密切相关。

3.数据处理的最小单位是数据项。

4.数据处理的基本单位是数据元素。

5.数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行运算,以及数据的存储结构。

相关文章
|
2天前
|
机器学习/深度学习 存储 算法
数据结构与算法 动态规划(启发式搜索、遗传算法、强化学习待完善)
数据结构与算法 动态规划(启发式搜索、遗传算法、强化学习待完善)
8 1
|
5天前
|
搜索推荐 C语言
【C语言/数据结构】排序(归并排序|计数排序|排序算法复杂度)
【C语言/数据结构】排序(归并排序|计数排序|排序算法复杂度)
11 0
|
5天前
|
存储 算法
Leetcode 30天高效刷数据结构和算法 Day1 两数之和 —— 无序数组
给定一个无序整数数组和目标值,找出数组中和为目标值的两个数的下标。要求不重复且可按任意顺序返回。示例:输入nums = [2,7,11,15], target = 9,输出[0,1]。暴力解法时间复杂度O(n²),优化解法利用哈希表实现,时间复杂度O(n)。
16 0
|
12天前
|
存储 机器学习/深度学习 算法
|
16天前
|
存储 算法 Python
程序设计的艺术:算法与数据结构的魅力
程序设计的艺术:算法与数据结构的魅力
8 0
|
16天前
|
存储 算法
数据结构开篇(普普通通浅浅聊数据结构)什么是数据结构 、什么是算法、重要性、如何学好数据结构呢
数据结构开篇(普普通通浅浅聊数据结构)什么是数据结构 、什么是算法、重要性、如何学好数据结构呢
|
24天前
|
存储 人工智能 算法
有哪些数据结构与算法是程序员必须要掌握的?——“数据结构与算法”
有哪些数据结构与算法是程序员必须要掌握的?——“数据结构与算法”
|
1天前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。
|
2天前
|
存储 算法 数据可视化
基于harris角点和RANSAC算法的图像拼接matlab仿真
本文介绍了使用MATLAB2022a进行图像拼接的流程,涉及Harris角点检测和RANSAC算法。Harris角点检测寻找图像中局部曲率变化显著的点,RANSAC则用于排除噪声和异常点,找到最佳匹配。核心程序包括自定义的Harris角点计算函数,RANSAC参数设置,以及匹配点的可视化和仿射变换矩阵计算,最终生成全景图像。
|
2天前
|
算法 Serverless
m基于遗传优化的LDPC码NMS译码算法最优归一化参数计算和误码率matlab仿真
MATLAB 2022a仿真实现了遗传优化的归一化最小和(NMS)译码算法,应用于低密度奇偶校验(LDPC)码。结果显示了遗传优化的迭代过程和误码率对比。遗传算法通过选择、交叉和变异操作寻找最佳归一化因子,以提升NMS译码性能。核心程序包括迭代优化、目标函数计算及性能绘图。最终,展示了SNR与误码率的关系,并保存了关键数据。
11 1