初识算法和数据结构P1:保姆级图文详解

文章目录

前言

亲爱的家人们,技术图文创作很不容易,若对您有帮助的话,请点赞收藏加关注哦,谢谢大家!有问题请私信或加V:18252587519

1、算法例子

1.1、查字典(二分查找算法)

①问题描述

在查找字典中的某个字时,常按照拼音的字母顺序进行查找。该过程在查找过程中不断缩小范围,逐步定位目标字。

②算法分析

查字典的过程实际上是二分查找的经典实现。具体步骤包括:

将字典分为两部分,通过比较中间位置的字母来决定是否查找前半部分或后半部分。

每次根据字母顺序排除一半的范围,直到找到目标字。

③算法本质

二分查找算法在数据量大的情况下能显著提高查找效率,它的时间复杂度为 O(log n) ,比起线性查找(O(n))更为高效。

1.2、整理扑克(插入排序算法)

①问题描述

在打牌时需要将手中的扑克牌从小到大排列。该过程通过不断将一张扑克牌插入到已经排序好的部分来实现。

②算法分析

扑克牌整理的过程本质上就是插入排序算法。在每一轮中,从无序部分抽出一张扑克牌,并将其插入到有序部分的正确位置,直到所有扑克牌有序为止。

③算法本质

插入排序是一种简单且直观的排序算法,适用于小规模的数据集。它的时间复杂度为 O(n^2),但在数据量较小或已接近有序时,表现较好。

1.3、货币找零(贪心算法)

①问题描述

在超市购物时,收银员需要找零。收银员会通过选择面额较大的货币来尽量减少找零次数。

②算法分析

该过程采用贪心算法,每一步都选择当前最优的选择(即用最大的面额找零),直到达到所需的零钱。

③算法本质

贪心算法通过在每个步骤选择局部最优解来期望得到全局最优解。尽管这种策略在某些情况下无法保证最优解,但对于大多数货币找零问题,它能够提供有效的解决方案。

2、算法与数据结构

2.1、算法定义

①定义 :解决特定问题的一组指令或操作步骤,通常具备以下几个特性:

i:明确的问题定义:包括输入和输出的清晰界定。

ii:可行性:算法能在有限的步骤、时间和内存空间内完成。

iii:确定性:算法的每个步骤都有明确的意义,且在相同的输入和条件下,输出结果是一致的。

2.2、数据结构定义

①定义 :组织和存储数据的方式,包含数据内容、数据间的关系以及对数据的操作方法。其设计目标包括:

i:节省空间:减少内存占用。

ii:高效操作:包括数据的访问、添加、删除和更新等操作。

iii:简洁性:数据结构应简洁并提供足够的逻辑信息,帮助算法高效执行。

iv:设计的权衡:在设计数据结构时,常常需要在不同方面作出权衡,例如:

链表:在数据添加和删除上更便捷,但牺牲了数据访问的速度。

图:提供更丰富的逻辑信息,但需要更多的内存空间。

2.3、数据结构与算法的关系

i:数据结构是算法的基石:算法需要基于某种数据结构来进行数据的存储和操作。

ii:算法为数据结构注入生命力:数据结构本身只能存储数据,通过算法才能实现对数据的操作和问题的解决。

iii:算法的执行效率与数据结构密切相关:不同的数据结构在执行同一个算法时,可能会导致效率上的差异,选择合适的数据结构至关重要。

类比拼装积木:数据结构与算法可以比作一套拼装积木:

输入数据:未拼装的积木。

数据结构:积木的组织形式,包括形状、大小、连接方式等。

算法:一系列拼装积木的操作步骤。

输出数据:最终拼装好的积木模型。

2.4、独立于编程语言

数据结构和算法是独立于编程语言的概念。不仅应用于某种编程语言,还在多种编程语言中实现。这使得数据结构和算法的学习具有广泛的适用性。

相关推荐
脱脱克克21 分钟前
大厂机考——各算法与数据结构详解
数据结构·算法
xinxiangwangzhi_31 分钟前
多视图几何--立体校正--Fusiello方法
图像处理·数码相机·算法·计算机视觉
梁下轻语的秋缘34 分钟前
每日c/c++题 备战蓝桥杯(求解三个数的最大公约数与最小公倍数)
c语言·c++·学习·算法·蓝桥杯
Chandler2436 分钟前
LeetCode 热题 100 堆
算法·leetcode
Listennnn40 分钟前
EM算法到底是什么东东
人工智能·算法·机器学习
云闲不收42 分钟前
各个语言对不同数据结构的叫法
数据结构
Y1nhl1 小时前
Pyspark学习二:快速入门基本数据结构
大数据·数据结构·python·学习·算法·hdfs·pyspark
独好紫罗兰1 小时前
洛谷题单3-P1423 小玉在游泳-python-流程图重构
开发语言·python·算法
曦月逸霜1 小时前
第十四届蓝桥杯省赛真题解析(含C++详细源码)
c++·算法·蓝桥杯
丁总学Java2 小时前
Spring Data JPA中的List底层:深入解析ArrayList的奥秘!!!
数据结构·数据库·list