专题:数据结构与算法
共13篇相关文章

如何递归修剪二叉搜索树成?
递归的基本流程 在《代码随想录》里,我们了解了递归的三要素: 确定参数和返回值。 确定终止条件。 确定单层递归逻辑。 关于二叉树这一分类,解题思路基本都在围绕着二叉树的深度遍历和广度遍历,而二叉搜索树则几乎全部都是二叉树的深度遍历,只是将对...

希尔排序是如何从插入排序演变而来的?
在学习希尔排序的过程中,发现很多博客只在讲希尔排序是什么,没有解释希尔排序是怎么设计的,为什么要使用增量。 在开始前,我们要先强调一下,希尔排序的时间复杂度并不固定,它依赖于增量序列的选择。在最坏的情况下,希尔排序的时间复杂度为O(n^2)...

ArrayList源码如何为?
前言 为啥要阅读源码?一句话,为了写出更好的程序。 一方面,只有了解了代码的执行过程,我们才能更好的使用别人提供的工具和框架,写出高效的程序。另一方面,一些经典的代码背后蕴藏的思想和技巧很值得学习,通过阅读源码,有助于提升自己的能力。当然,...

LinkedList基础回顾?
## 前言 本文基于jdk1.8 书接上回,在简单介绍ArrayList的时候,提到了ArrayList实现了RandomAccess接口,拥有随机访问的能力,当时说到了这个接口配合LinkedList理解更容易。今天就来还愿了,开始阅读L...

如何HashMap源码以支持查询?
本文一是总结前面两种集合,补充一些遗漏,再对HashMap进行简单介绍。 回顾 因为前两篇ArrayList和LinkedList都是针对单独的集合类分析的,只见树木未见森林,今天分析HashMap,可以结合起来看一下java中的集合框架。...

您的问题似乎不完整,您是想询问关于C语言编程的某个具体问题吗?比如C语言的语法、编程技巧、项目开发等。请提供更具体的信息,这样我才能给出更准确的回答。
二分搜索法 ##定义 二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法。 适用范围 当数据量很大并且有序时,适宜采用该方法。 基本思想 假设数据是按升序排序的,对于给定值key,从序列的中间位置k开始比较, 如果当前位置a...

位运算可以为位运算是什么操作?
###一、与、或、异或的运算规律 | 与(&) | 0&0=0 | 1&0=0 | 0&1=0 | 1&1=1 | |...

如何将.NET二叉树递归和迭代遍历成?
代码随想录: https:programmercarl.com #.NET中二叉树的定义 public class TreeNode { public int val; public TreeNode left; public Tree...

.NET堆排序如何实现排序功能?
堆排序及相关知识 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是具有以下性质的完全二叉树:每个结点的值都大...

.NET刷算法如何应用于优化?
# BFS模板-宽度优先搜索(Breadth First Search) ## 1.模板 ````C# BFS遍历 开始节点目标节点public int BFS(Node start, N...

.NET中哈希表和Dictionary的底层原理和应用场景有哪些?
# 引子 > 问题:给定一串数字{1,2,5,7,15,24,33,52},如何在时间复杂度为O(1)下,对数据进行CURD? **数组:**我创建一个Length为53的数组,将元素插入相同下标处,是不是就可以实现查...

如何实现的LRU缓存淘汰策略?
# LRU 缓存 [题目链接](https:leetcode.cnproblemslru-cache) LRU,即**Least-Recently-Used**。是一种高速缓存替换策略,是一种缓存机制。主要是利用**局部性原理**...

优雅求模,一致性哈希,如何实现高效匹配?
传统哈希局限性 求模,也就是 key % 节点数 N, 当节点数量变化时(如服务器扩容下线),几乎所有数据的映射关系都会失效,导致大量数据需要重新迁移,引发 “哈希雪崩”。 key的hash值 节点数 求模 10 3 10 % 3 =...
