数据结构
文章平均质量分 90
数据结构
今天学习了吗•
这个作者很懒,什么都没留下…
展开
-
【数据结构】归并排序的递归实现与非递归实现
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。如何实现?原创 2024-01-29 09:25:25 · 528 阅读 · 0 评论 -
【数据结构】交换排序- -冒泡排序的实现、快速排序的递归实现与非递归实现
交换排序算法基本思想是根据序列中两个记录键值的比较结果来对换这两个记录在序列的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。交换排序有冒泡排序和快速排序两种。冒泡排序我们在C语言阶段就学习过了,所以就简单写一下,主要对快速排序进行学习。原创 2024-01-28 11:41:34 · 868 阅读 · 0 评论 -
【数据结构】队列扩展--循环队列
int* data;//用于队列存放数据int front;//队头指针int rear;//队尾指针int k;//队列空间大小。原创 2024-01-13 23:10:20 · 812 阅读 · 0 评论 -
【数据结构】插入排序--直接插入排序和希尔排序的实现
这种排序算法对于接近有序的元素集合效率很高,因为越是有序,数据挪动次数就越少。但是对于完全逆序的元素集合,每插入一个数据,前面的值都要向后挪动,数据越多,挪动次数也将越多,效率就会降低。时间复杂度O(N^2)空间复杂度O(1)原创 2024-01-17 17:30:58 · 904 阅读 · 0 评论 -
【数据结构】选择排序--直接选择排序和堆排序的实现
1.直接选择排序的过程容易理解,但是效率不是很好2.时间复杂度为O(N^2)3.空间复杂度为O(1)4.稳定性:不稳定。原创 2024-01-18 20:49:10 · 824 阅读 · 0 评论 -
【数据结构】认识和实现栈和队列
栈和队列是两种重要的线性结构。从数据结构角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表操作的子集,它们是操作受限的线性表,因此,可称为限定性的数据结构。接下来我们将一起学习栈和队列的定义与实现。原创 2024-01-12 23:47:46 · 805 阅读 · 0 评论 -
【数据结构】模拟顺序表的实现
我们采用 realloc 来实现扩充容量,设置一个新的指针,将扩充后的空间的地址赋给它。顺序表又分为静态顺序表与动态顺序表,静态顺序表是用定长的数组存储的, 在现实场景中数组大小具有不确定性,定长的话会造成空间不够用或者浪费,因此我们多采用动态顺序表,这篇文章也将采用动态顺序表讲述。接下来我们要来实现插入删除等函数,在插入数据时不是直接插入,还应判断空间是否足够,不够的话扩容后再执行插入操作。头插尾插是该函数的特殊情况,当在其他位置插入时我们需先判断插入位置是否合法,合法后再挪数据将其放入插入位置。原创 2023-11-01 18:09:49 · 164 阅读 · 0 评论