数据结构
文章平均质量分 59
Soryu_Shikinami
Tender is the night.
展开
-
【数据结构】栈和队列
【本节目标】1.栈2.队列3.栈和队列面试题1.栈1.1栈的概念及结构栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。1.2栈的实现栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在...原创 2022-01-19 17:28:30 · 212 阅读 · 29 评论 -
【数据结构】顺序表和链表(下)
【数据结构】顺序表和链表(上):https://blog.csdn.net/m0_51866180/article/details/122301767?spm=1001.2014.3001.5502https://blog.csdn.net/m0_51866180/article/details/122301767?spm=1001.2014.3001.5502【本节目标】3.链表4.顺序表和链表的区别3.链表3.1链表的概念及结构概念:链表是一种物理存储结构上非连续、非顺序的..原创 2022-01-19 17:15:51 · 171 阅读 · 21 评论 -
【数据结构】顺序表和链表(上)
【本节目标】1.线性表2.顺序表1.线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。2.顺序表2.1概念及结构顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组...原创 2022-01-04 14:12:25 · 210 阅读 · 25 评论 -
【数据结构】-排序-快速排序
快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法。基本思想:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,然后最左右子序列重复该过程,直到所有元素都排列在相应位置上为止。将区间按照基准值划分为左右两半部分的常见方式:Hoare法、挖坑法、前后指针法。1. hoare版本动图理解:选择方式:1.当选择最左做key时,右边先走。-->左右相...原创 2021-12-16 23:36:42 · 1260 阅读 · 31 评论 -
【数据结构】-排序-堆排序
堆排序:堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。它是通过堆来进行选择数据。需要注意的是排升序要建大堆,排降序建小堆。先建堆,排升序建大堆,选出最大的数(大堆,堆顶为最大值)将其放到最后,然后满足大小堆后即可做向下调整动作(向下调整必须两个子树都是大堆或小堆)。动图理解:分布图解:建堆:从最后一颗子树开始建。最后一个元素坐标为n-1,则子树坐标为(n-1-1)/2。选出最大的数将其...原创 2021-12-09 14:23:59 · 2963 阅读 · 36 评论 -
【数据结构】-排序-选择排序
选择排序:基本思想:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完 。直接选择排序:在元素集合array[i]--array[n-1]中选择关键码最大(小)的数据元素。若它不是这组元素中的最后一个(第一个)元素,则将它与这组元素中的最后一个(第一个)元素交换。在剩余的array[i]--array[n-2](array[i+1]--array[n-1])集合中,重复上述步骤,直到集合剩余1个元素。动...原创 2021-12-09 10:38:46 · 603 阅读 · 24 评论 -
【数据结构】-排序-希尔排序
希尔排序:希尔排序法又称缩小增量法。希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,取,重复上述分组和排序的工作。当到达=1时,所有记录在统一组内排好序。插入排序时:数组接近有序的时候,时间复杂度趋于O(N)。希尔排序是对于直接插入排序的优化,通过预排序使数组趋于有序希尔排序的分为预排序(gap > 1)和直接插入( gap == 1)排序两步骤。分组预排序使数...原创 2021-12-07 16:05:12 · 1787 阅读 · 28 评论 -
【数据结构】-排序- 直接插入排序
常见排序算法:插入排序基本思想:直接插入排序是一种简单的插入排序方法,把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。实际中我们玩扑克牌时,就用了插入排序的思想动图理解:当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与 array[i-1], array[i-2 ],…的排序码顺序进行比...原创 2021-12-07 00:14:35 · 779 阅读 · 11 评论