串的定义
定义:由零个或多个字符组成的有限序列。
记为:S = '' ()
啊,多么美妙(复杂)的数据结构啊!
悄悄告诉你
括号里的话才是我想说的
我们对于数据结构的认识就是复杂,难,不好思考。但是日常生活中却遍布着数据结构的思想。(只是需要一双善于观察的眼睛👀)
-
我们在排队等待“叫号”时,不就是一个队列➡️吗?
-
我们存在不同人的QQ列表里,不就是一个图👤吗?
-
我们打牌时情不自禁地将牌从小到大的排序,不就是选择排序吗?
-
........
图的基础
定义:图G由顶点集V和边集E组成,记为 G = (V, E) ,其中 V(G) 表示图G中顶点的有限非空集; E(G) 表示图G种边的集合。若V={}则|V|表示G中顶点的个数,E={(u, w)|u∈V,v∈V},则|E|代表G中边的条数。
线性表的定义
线性表是具有相同数据类型的n(n >= 0)个数据元素的有限序列,其中n为表长,当n = 0时线性表是一个空表。若使用L命名线性表,则表示为:
L = (a1, a2, ..., an)
重要的是有限个且类型相同。我们可以知道线性表有以下的特性:
- 元素类型相同。
- 个数有限。
- 除了第一个元素,其余每个元素都有一个直接前驱。
- 除了最后一个元素,其余每个元素都有一个直接后继。
下面代码和示例都默认使用整数类型。
查找的概念
查找:在数据集合中寻找满足某种条件的数据元素的过程称为查找。
查找的结果只能有两种,分别为查找成功和查找失败,前者表示在查找表中寻找到了满足条件的元素,后者表示没有在查找表中寻找到满足条件的元素。
这里出现的查找表就是用于查找的数据集合,其由同一类型的元素组成。
查找表有两种分类分别为:
默认以下的排序代码中元素都是整数数值且目的是进行升序排序。
排序的概念
排序:重新排列表中的元素,使表中的元素满足按关键字有序的过程。
也就是说对应表中输入 n 个不管是否有序的记录(每个记录表示用于排序的标志称为关键字),在输出时表中为 n 个有序的记录。
在讨论排序算法时,有一个很重要的性质:该算法是否稳定!
那么满足什么条件才能说改算法是稳定的呢?
若待排序表中有两个元素 Ri 和 Rj,其对应的关键字相同,且 Ri 排在 Rj 的前面,若在使用了某个排序算法后,Ri 仍然排在 Rj 的前面,那么就称该排序算法是稳定的,否则不稳定。