常见的数据结构与算法
文章平均质量分 87
# 常见的数据结构与算法
Allen Chou
这个作者很懒,什么都没留下…
展开
-
详解红黑树
红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型用途是实现关联数组。它在1972年由鲁道夫·贝尔发明,被称为"对称二叉B树",它现代的名字源于Leo J. Guibas和罗伯特·塞奇威克于1978年写的一篇论文。红黑树的结构复杂,但它的操作有着良好的最坏情况运行时间,并且在实践中高效:它可以在时间内完成查找、插入和删除,这里的是树中元素的数目。用途和好处红黑树和AVL树一样都对插入时间、删除时间和查找时间提供了最好可能的最坏情况担保。...原创 2021-07-15 19:58:37 · 348 阅读 · 0 评论 -
二叉树的层次遍历算法(C语言版)
借助队列来实现void LevelOrder(BiTree *bt) { InitQueue(Q); //初始化一个队列Q BiTree *p; //p用来跟踪队头元素 EnQueue(Q,bt); //根节点入队 while(!IsEmpty(Q)) { DeQueue(Q,p); visit(p); if(p...原创 2018-11-26 22:53:54 · 5430 阅读 · 2 评论 -
详解什么是尾递归(通俗易懂,示例讲解)
在传统的递归中,典型的模型是首先执行递归调用,然后获取递归调用的返回值并计算结果。以这种方式,在每次递归调用返回之前,您不会得到计算结果。在尾递归中,首先执行计算,然后执行递归调用,将当前步骤的结果传递给下一个递归步骤。这导致最后一个语句采用的形式(return (recursive-function params))。基本上,任何给定递归步骤的返回值与下一个递归调用的返回值相同。我们考虑...原创 2018-11-26 21:52:54 · 47574 阅读 · 17 评论 -
快速排序详解
快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),简称快排,一种排序算法,最早由东尼·霍尔提出。在平均状况下,排序个项目要(大O符号)次比较。在最坏状况下则需要次比较,但这种状况并不常见。事实上,快速排序通常明显比其他算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地达成,在数据结构中算很重要的知识点,是基于分而...原创 2018-11-14 14:09:49 · 324 阅读 · 0 评论