
数据结构与算法
数据结构与算法
爱上小公举
希望明天的我
仍然对不同充满宽容
继续对未知饱含敬畏
展开
-
哈希表(散列表) -- 概念原理以及代码实现
哈希函数1. 闭散列线性探测闭散列的扩容两个小问题闭散列的简单实现2.开散列开散列的增容开散列与闭散列比较有迭代器的开散列实现开散列实现unordered_map哈希的应用原创 2020-02-24 22:03:14 · 1231 阅读 · 0 评论 -
(数据结构)栈和队列( C实现 )
栈和队列 1.栈 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。说明 : 这里的栈是我们自己建立的一种自定义的数据结构 , 并非内存区域中的栈区, 当然他们也有共同的特点...原创 2019-08-22 00:18:21 · 316 阅读 · 0 评论 -
(数据结构)二叉树
目录 一. 树的概念及结构 二. 树的表示 三. 二叉树概念及结构 特殊的二叉树 二叉树的存储结构四. 二叉树的顺序结构及实现 堆的概念及结构 堆的实现 堆向下调整算法: 堆的创建 堆的插入 ...原创 2019-08-22 22:07:02 · 505 阅读 · 0 评论 -
(数据结构)顺序表和链表(C实现)
目录1.线性表2.顺序表3.链表4.顺序表和链表的区别与联系 1.线性表 线性表是 n 个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。注意...原创 2019-08-21 16:40:05 · 2632 阅读 · 0 评论 -
归并排序(C实现)
归并排序归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并操作的工作原理如下:第一步:申请空间,使其大小为待排序数列排序,该空间用来存放合并后的序列第二步:设定两个指针,最初位置分别为两个已经排序序列的起...原创 2019-08-26 20:46:15 · 997 阅读 · 0 评论 -
希尔排序(C实现)
希尔排序希尔排序(Shell's Sort)是插入排序的一种, 又称“缩小增量排序”,是直接插入排序算法的一种更高效的改进版本。希尔排序法的基本思想是:先选定一个整数 gap,把待排序数列中所有所有距离为gap 的元素分在同一组内,并对每一组内的记录进行插入排序。然后,取 gap=gap/2 重复上述分组和排序的工作。当gap等于1时,排序结束.希尔排序是对直接插入排序的优化。插入...原创 2019-08-25 21:47:50 · 197 阅读 · 0 评论 -
插入排序(C实现)
插入排序如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法 , 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二...原创 2019-08-25 16:26:20 · 848 阅读 · 0 评论 -
堆排序(C实现)
堆排序目录堆的概念及结构 堆的实现堆排序堆排序的特点堆排接口实现堆的概念及结构 :如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki <= K2i+1 且 Ki<= K2i+2 (Ki >= K2i+1 且 Ki >= K2i+2) i = 0,1,2…,则称为小...原创 2019-08-24 22:53:17 · 900 阅读 · 0 评论 -
冒泡排序(C实现)
冒泡排序冒泡排序 , 它重复地遍历待排序的数列,一次比较前后两个元素,依次往后 , 如果前后元素顺序错误就把他们交换过来, 每遍历一次就会将最值一直交换到未排序数列的末尾, 反复对待排序数列进行以上操作 , 直到全部排序结束 .这是一种易于理解切代码简单但效率不高的排序算法.会冒泡的不止算法, 还有火锅.....看到了火锅冒泡泡 , 再看看算法中的冒泡是怎样冒的, 演示如...原创 2019-08-24 20:51:46 · 217 阅读 · 0 评论 -
选择排序(C实现)
选择排序第一次从待排序的元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。这是一种简单 , 便于理解 , 代码便于实现但效率并不高的排序算法 .我们来看图解 : 我们就已华安的代号9 5 2 7为例 ...原创 2019-08-24 16:38:00 · 244 阅读 · 0 评论