- 博客(10)
- 收藏
- 关注
原创 数据结构之排序
排序:根据元素关键字的大小或其他规则来对序列中的元素进行调整,以确保它们的相对顺序符合所需的排序顺序(升序或降序)。排序的稳定性:如果关键字key1=key2,在排序后记录1和记录2的位置没有发生变化,那么这种排序方法就是稳定的,相反,如果排序后记录1和2的顺序和排序前发生了变化,则此排序方法不稳定。内排序:在排序的过程中,待排序的所有记录放置在内存中。外排序:当数据无法一次性全部加载到内存中时,将大文件分割成适当大小的块,然后在内存中对这些块进行排序,最后将排好序的块合并成一个有序的文件。
2024-01-06 16:18:20 984 1
原创 冒泡排序算法
冒泡排序是一种基础的比较排序算法,它重复地遍历待排序数组,依次比较相邻的两个元素,如果它们的顺序不符合要求(比如升序排序时前面的元素大于后面的元素),就交换它们的位置。通过这样的比较和交换,每一轮都会将当前未排序部分的最大元素(或最小元素)移动到末尾。经过多轮的迭代,直到整个数组有序。
2023-12-12 21:55:15 65
原创 LinkList *L,和LinkList L 的区别(超详解,看完秒懂)
在学习数据结构的链表时,你是否有以下疑惑LinkList *L,和LinkList L有什么区别?到底是用" . "去访问结构体内部元素还是使用"->"去访问?
2023-12-11 23:07:00 1847 3
原创 数据结构之线性表(链式存储结构)(简洁且全面,适合赶时间的人学习)
链式存储就是将数据元素存储在任意分布的存储单元内,这些存储单元可以连续也可以不连续。如下图描述:其中像a1 a2 a3这样的点称作节点。每一个节点由两个域组成,分别为数据域和指针域;数据域用来存放数据元素的信息,指针域用来存放指针,指向下一个节点。如下图描述这条链就是由n个这样的节点,用指针这条“线”穿起来的。
2023-12-10 22:23:55 1068 1
原创 二分法(详解区间问题)
在介绍二分法之前我们先来做一个游戏请你想一个0-100范围内的整数,然后我在七次之内猜出来你想的数是哪个数。我每猜一个数,你只需要告诉我是大了还是小了。我为什么能最多七次就能猜出来呢?(带着疑问,看完这篇文章你就明白了)通俗来说也就是折半查找,每次都排除一半的元素,在一次一次二分后找到目标元素。注意:二分查找只能对有序的列表进行查找(列如按大小顺序排列的表)取中间元素,判断目标元素是比中间元素大还是小。如果相等直接查找成功,返回中间值。
2023-12-09 20:25:31 416
原创 使用sort函数时predefined_ops.h报错无数
在我使用sort函数对一个含多个元素的结构体进行排序,编译时跳到predefined_ops.h文件,并且报错无数;我找到了出错的原因,是应为在进行排序时程序不知道是按照结构体里的哪个元素进行排序。:结构体中包含多个元素,排序时程序不知道是按照结构体里的哪个元素进行排序。解决办法:加一个compare函数来规定sort函数排序时的规则。:加一个compare函数来规定sort函数排序时的规则。将sort改为:sort(L,L+3,cmp);
2023-12-09 15:42:02 262
原创 数据结构之线性表(顺序存储结构)
学习了本章线性表,我们应该知道什么是线性表,能够判断一张表是不是线性表。重点是掌握线性表了两种存储结构,以及在分别用这两种存储结构创建一张线性表,并且在这两种结构中对表进行查找、增加、删除等等操作;对比这两种存储结构的优缺点,知道在什么情况下用哪种结构。线性表:线性表是由一系列有序元素组成的数据结构,每个元素都有唯一的前驱和后继。上图就是一个简单的线性表,其中a1是a2唯一的直接前驱,a2是a1唯一的直接后继;注意头节点和尾节点分别没有直接前驱和直接后继。
2023-12-06 18:27:48 473
原创 数据结构——算法篇
算法,乍一听好像是很高深莫测的东西。是计算的方法?是比数学题还难的计算?其实并不是大家想象的那样神秘。接下来大家听我一说马上就明白了算法:解决问题的步骤。(这些步骤告诉计算机应该按照什么顺序执行一些任务,以达到特定的目标)时间复杂度:时间复杂度并不直接表示具体的运行时间,而是表示随着输入规模的增加,算法运行时间的增长趋势。比如用一个函数模型来描述。
2023-12-04 22:57:24 159
原创 数据结构——初识数据结构
比如你上学抽象为三个操作:出门——去学校——上课 将这一系列操作抽象出来,而不用管你是怎么实现的。你去学校我不用考虑你是走路去还是坐车去。我只要知道你去学校这一动作就可以。
2023-12-03 20:27:50 67
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人