数据结构与算法
文章平均质量分 96
一句话,加油!
一句话,加油!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
直接插入排序、希尔排序、快速排序、选择排序、堆排序、计数排序、桶排序、基数排序
当 i == 0 的时候,swapped = false,j 的取值范围是从 0 到 n -1,内循环的执⾏判断操作 n -1 次,但是没有发⽣交换操作,冒泡排序算法直到数组已经有序,所以执⾏结束。每⼀趟划分,我们就可以将作为 pivot 的值 x 放到排序数组的正确位置,并且将所有⽐ x ⼩的放到 x 的左边,所有⽐ x ⼤的元素放到 x 的右边。 通过此种⽅式,对于关键字的值较⼩的记录,其前移的过程不是⼀步⼀步的,⽽是跳跃性的前移,并且在最后⼀次对整表进⾏插⼊排序时减少了⽐较和排序的次数。原创 2025-09-09 18:52:48 · 939 阅读 · 0 评论 -
图的存储遍历、最小生成树、Dijkstra算法、拓扑排序和关键路径
在线性表中,每个元素之间只有⼀个直接前驱和⼀个直接后继。在树形结构中,数据元素之间是层次关系,并且每⼀层上的数据元素可能和下⼀层中多个元素相关,但只能和上⼀层中⼀个元素相关。但这仅仅都只是⼀对⼀,⼀对多的简单模型,如果要描述多对多的复杂关系就需要图数据结构了!—个连通图的⽣成树是—个极⼩的连通⼦图,它包含图中全部的n个顶点,但只有构成—棵树的n-1条边。可以看到—个包含三个顶点的完全图可以产⽣3颗⽣成树。对于包含n个顶点的⽆向完全图最多包含n的n-2次⽅颗⽣成树。原创 2025-09-01 15:38:02 · 1089 阅读 · 0 评论 -
树、哈夫曼树以及二叉树的各种操作
树(Tree)是n(n≥0)个节点的有限集合T,它满足两个条件 :有且仅有一个特定的称为根(Root)的节点其余的节点可以分为m(m≥0)个互不相交的有限集合T1、T2、……、Tm,其中每一个集合又是一棵树,并称为其根的子树(Subtree)。树的定义具有递归性,即“树中还有树”。二叉树是每个结点最多有两个子树的树结构。二叉树不允许存在度⼤于2的树。二叉树可以是空集根可以有空的左子树或者右子树;左右子树都是空。只有左子树或者右子树的叫做斜树。原创 2025-08-16 22:18:32 · 975 阅读 · 0 评论 -
栈和队列(01星球)
栈是限制在一端进行插入操作和删除操作的线性表(俗称堆栈),允许进行操作的一端称为“栈顶”,另一固定端称为“栈底”,当栈中没有元素时称为“空栈”。特点 :后进先出(LIFO)。队列是一种特殊的线性表,特殊之处就在于它只允许在表的前端进行删除操作,在表的后端进行 插入操作。和栈一样,队列也是一种操作受到限制的线性表。进行插入操作的端称之为队尾,进行删除 操作的端称之为队头。队列中没有队列的时候,称之为空队列。队列的数据元素,⼜叫做队列元素。原创 2025-03-19 22:52:26 · 1086 阅读 · 0 评论 -
顺序表,单链表,双链表,循环链表(01星球)
define 定义宏,使用 #define 定义常量来增强可读性。宏定义在C语言源程序中允许用一个标识符来表示一个字符串,称为“宏” ,被定义为“宏”的标识符称为“宏名”。定义宏:#define 宏名 替换文本 (替换文本”可以是任意常数、表达式、字符串等。类型定义和变量声明分开类型定义的同时声明变量。原创 2025-03-13 20:50:16 · 767 阅读 · 0 评论
分享