算法进阶-日记
前言 我对算法一直抱有恐惧,这种恐惧来自面试的压力,害怕自己做不出来,但是如果抛开面试不谈,我还是喜欢算法的,算法有一种魔力,是由纯粹的逻辑构成的诗。之前一直是为了面试而刷题,hot100已经刷到就算是一周不睡觉也能很快A出来的程度了,但终…
标记为「算法」的文章集合。
前言 我对算法一直抱有恐惧,这种恐惧来自面试的压力,害怕自己做不出来,但是如果抛开面试不谈,我还是喜欢算法的,算法有一种魔力,是由纯粹的逻辑构成的诗。之前一直是为了面试而刷题,hot100已经刷到就算是一周不睡觉也能很快A出来的程度了,但终…
快速排序 & 快速选择 基准点的选取 基准点(pivot)是快速选择和快速排序算法中的一个关键概念。基准点的选取方法可以有很多种,常见的策略包括: - 固定基准点 :通常选择数组的第一个元素或最后一个元素作为基准点。 - 随机基准点 :随机…
从零开始的算法学习 三 二叉树 问题一 用递归和非递归两种方式实现二叉树的先序、中序、后序遍历 如何直观的打印一颗二叉树 ? 如何完成二叉树的宽度优先遍历 ? 左右节点 孩子 都为空的节点就叫做叶子节点 递归序 1 2 4 4 4(三次返回…
可以认为 无论Hash表存储多少数据,增删改查的时间复杂度都是常数级别O 1 ,但是常数时间比较大 如果Hash表存储是Key是基本类型比如:Interge,Double,String...那么Hash表内部传递的过程是按值传递的,在Has…
图的存储方式 - 邻接表 - 邻接矩阵 如何表达图?生成图? 图的表示方式很多,我们只需要熟练掌握一种,把这些图的代码写熟,以后遇到这种图的题之后,可以把这种图转换为我们熟悉的图结构 重点:用熟悉实现一种图的结构 图的宽度优先遍历 - 利用…
常数操作:与数据量无关的操作 非常数操作:与数据量相关的操作 分析算法的好坏:先看时间复杂度的指标,在分析不同数据样本下的实际运行时间 比如同样的时间复杂度O n .1000次的乘法运算和1000次的位运算,实际时间会有很大的差别 或运算 …
数组 二分查找 二分查找的精髓在于寻找 循环不变量 ,可以理解为有固定的含义,在处理的过程中绝对不会改变的量 二分查找服务的对象必须是 有序 的 二分查找的解题步骤 - 确定循环不变量,一般是数组的左边界和右边界 - 确定循环结束的条件,根…