随笔分类 - 数据结构与算法
摘要:# 引子 > 问题:给定一串数字{1,2,5,7,15,24,33,52},如何在时间复杂度为O(1)下,对数据进行CURD? **数组:**我创建一个Length为53的数组,将元素插入相同下标处,是不是就可以实现查找复杂度O(1)了?但是添加修改元素时间复杂度为O(n)了。 **链表:**添加删
阅读全文
摘要:# BFS模板-宽度优先搜索(Breadth First Search) ## 1.模板 ````C# /// /// BFS遍历 /// /// 开始节点 /// 目标节点 /// public int BFS(Node start, Node target) { //利用队列先进先出(FIFO)
阅读全文
摘要:堆排序及相关知识 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。 堆 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小
阅读全文
摘要:代码随想录: https://programmercarl.com #.NET中二叉树的定义 public class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode(in
阅读全文
摘要:###一、与、或、异或的运算规律 | 与(&) | 0&0=0 | 1&0=0 | 0&1=0 | 1&1=1 | | | | | | | | 或(|) | 0|0=0 | 0|1=1 | 1|0=1 | 1|1=1 | | 异或 | 00=0 | 10=1 | 01=1 | 11=0 | 与,有0
阅读全文
摘要:二分搜索法 ##定义 二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法。 适用范围 当数据量很大并且有序时,适宜采用该方法。 基本思想 假设数据是按升序排序的,对于给定值key,从序列的中间位置k开始比较, 如果当前位置arr[k] 值等于key,则查找成功; 若key小于当前位置
阅读全文

浙公网安备 33010602011771号