![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
慈眉善目张先森
为了不像瓜皮一样的活着....
展开
-
算法-滑动窗口
算法-滑动窗口开始撸常用算法理解滑动窗口在嵌套循环中解决重复字符串或者区域内求最大和这种问题的时候,一般可以使用双循环来解决问题,但是使用滑动窗口可以单循环解决;例如以上求连续无重复最大字符串长度,我们可以直接两个for循环进行记录比较一直到循环结束,但是如果用滑动窗口只需一次循环即可;先确定左指针指向数组首位,并取元素i=0此时窗口宽度为1,我们开始判断窗口是否能够扩大;原窗口不包含B所以扩大,并将指针右移,此时窗口包含AB;然后继续判断是否能扩大,判断是否能扩大可以理解为判断是否可原创 2020-07-01 13:46:46 · 472 阅读 · 0 评论 -
算法-快速排序
算法-快速排序开始撸常用算法理解快速排序算法快速排序是冒泡排序的一种改进;通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列;将画图展示快速排序算法的逻辑有一组数据如下这里我们将指定一个key,这个key默认可以为最后一个数据也可以为第一个数据,本分析使用的是第一个数据作为key;为了保证key的随机性,可以生成一个left+1到right之间的原创 2020-06-30 12:15:28 · 1835 阅读 · 0 评论 -
算法-堆排序
算法-堆排序开始撸常用算法理解堆堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。堆总是满足下列性质:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树;将根节点最大的堆叫做最大堆或大根堆(或者也可以叫做大顶堆)根节点最小的堆叫做最小堆或小根堆(小顶堆)我们以一个常见数组为例,将转化为大顶堆:数组5273614,红色为下标,先直接按照普通树画堆图3614因为没有子分支了,将其称为叶,那么527即为非叶节点;原创 2020-06-29 17:30:12 · 222 阅读 · 0 评论