文章目录 一、算法的时间复杂度定义 二、推导大O阶方法 三、推导示例 1、常数阶 2、线性阶 3、对数阶 4、平方阶 5、立方阶 四、常见的时间复杂度 五、最坏情况与平均情况 六、算法空间复杂度 一、算法的时间复杂度定义…
分类:数据结构与算法
02动态数组
1、动态数组是什么 动态数组就是可以自动扩容的数组,元素可以自由地被添加/插入到相应的位置,也可以很方便地移除某个位置上的元素。在Java中的ArrayList集合就是一个动态数组。 2、为什么要使用动态数组 普通数组的…
如何实现在引用数据的同时,按某一列自动排序
上周到某家银行企业培训的时候,学员小K咨询如何实现在引用数据的同时,按某一列自动排序。我举例说明一下小K的问题,比如现在我有两个月的工资明细表。 1月工资表 2月工资表 两张表格的数据结构是一样的,现在要将这些数据引用到…
数组按数字出现频次排序
题目 同时也是百度2018秋招的笔试题,LeetCode 451–根据字符出现频率排序的变形 题意为从一个乱序数组中,将其中的整数按照出现的频次多少来排列,比如输入为 [1,2,1,2,3,3,1,6,4,4,4,4],…
超硬核!数据结构学霸笔记,考试面试吹牛就靠它
上次发操作系统笔记,很快浏览上万,这次数据结构比上次硬核的多哦,同样的会发超硬核代码,关注吧。 超硬核!操作系统学霸笔记,考试复习面试全靠它 第一次笔记(复习c,课程概述) 第一…
求解递归方程 使用代入法, 递归树方法,迭代法, 主方法(Substitution Method, Recursion Tree,Iteration Method, Master Theorem)
目录 如何求解T(N)=aT(N/b)+f(N) 方法1:代入法(Substitution Method) 方法2:递归树方法(Recursion Tree) 方法3: 迭代法(Iteration Method) 方法4…
哈夫曼实现文件压缩解压缩(c语言)
写一个对文件进行压缩和解压缩的程序,功能如下: ① 可以对纯英文文档实现压缩和解压; ② 较好的界面程序运行的说明。 介绍哈夫曼: 效率最高的判别树即为哈夫曼树 在计算机数据处理…
数据结构之流水线中的相关问题 数据相关,控制相关,结构相关
三、流水线中的相关问题 工厂里的流水线不能连续工作,可能是原料不到位,流水线上有员工不到位等原因。同理计算机CPU内部也有不能连续工作的情况,叫流水线阻塞。 流水线不能连续工作原因可能有: ①编译形成的程序不能发挥流水线…
数据结构中的逻辑结构(附上c++中的常见数据结构的逻辑结构)
最近在学习数据结构,有必要对自己这两天的学习做一个总结,今天就来总结下,数据结构的逻辑结构 按照分类标准的不同,我们把数据结构分为逻辑机构和存储结构,今天主要讲解逻辑结构 逻辑结构:是指数据对象中的数据元素…
「数据结构与算法Javascript描述」二叉树
「数据结构与算法Javascript描述」二叉树 「数据结构与算法Javascript描述」二叉树 1. 树的定义 2. 二叉树 2.1 二叉搜索树 2.2 二叉搜索树的遍历 2.3 二叉搜索树上进行查找 2.3.1 查…
【数据结构与算法】之深入解析常用的五大算法设计策略
一、分治 ① 基本思想 在计算机科学中,分治法是一种很重要的算法,字面上的解释是“分而治之”,就是将一个难以直接解决的大问题,分割成 n 个规模较小的子问题,这些子问题相互独立,且与原问题相同,然后各个击破,分而治之。这…
KMP算法之next数组详解
KMP算法之next数组详解 KMP算法实现原理 KMP算法是一种非常高效的字符串匹配算法,下面我们来讲解一下KMP算如何高效的实现字符串匹配。我们假设如下主串和模式串: int i;//i表示主串的下标 int j;/…