算法基础
文章平均质量分 90
咕咚0203
没有什么是一个涨停解决不了的事,如果有那就两个涨停……✌
展开
-
KMP算法解析
一、概述什么是KMP算法?KMP算法是一种用于在字符串A中找到目标字符串B位置的算法。这个算法是由Donald Knuth、James H. Morris、Vaughan Pratt三人于1977年联合发表,故称为“KMP算法”。简而言之KMP就是一种字符串查找法。本章就来带大家一起了解下KMP算法的实现逻辑。二、问题分析光看上面的定义可能大家并不知道KMP到底是个什么东西?到底怎么工作的?接下来我们通过一个问题来帮助大家很好的理解KMP算法。问题:在A字符串"AC12BS 1BC12UD1原创 2021-01-08 14:07:09 · 170 阅读 · 0 评论 -
二分查找和插值查找
一、概述在一堆数据里面找出自己需要的元素,这种需求可以说是最基础的需求之一,任何程序都会有所涉及。如果程序的查找算法设计的很精妙,那么整个程序的性能就会有显著的提升。今天就来分享两种常用的查找算法。二、算法复杂度分析关于查找最容易想到的一种实现方式就是将一组数据中的每个元素逐个取出来和目标值比较,如果取出来的元素和目标值相同那就说明找到了,这种查找算法叫做顺序查找法,其复杂度为O(N)。二分查找就是:在一组数据中取出中间的那个元素,将其和要找的元素对比,如果不是要找的元素,则以其为标记点,将这组原创 2020-12-28 18:43:56 · 534 阅读 · 0 评论 -
归并排序和分治算法
一、概述之前介绍过五种经典的排序算法,在该文中引出了一种效率很高的归并排序,其复杂度为O(N*logN)。今天就来分享一下这种排序算法的实现,以及其用到的算法思维分治算法。二、归并排序的实现归并排序的基本实现逻辑就是:将一堆大量的无序数据分成两份,然后再对分成两份的数据再次进行拆分,一直拆到不能再拆分为止(拆分的最小单元为一份数据仅有两个元素),然后对每组数据进行排序,排好序之后再一层层往上合并,最终将这堆无序的数据变成有序状态。归并排序很容易描述,总结起来就是将数据分成两份,让它们各自进行归并原创 2020-12-14 10:18:33 · 643 阅读 · 0 评论 -
五种经典的排序算法
一、概述在算法面试题中,排序算法经常被问到,因为涉及排序的业务场景很多,如员工的薪资列表,VIP积分榜,游戏里面玩家战力榜等等。另外排序算法的种类多,效率参差不齐。好的排序算法复杂度能达到O(logN),而差的算法会拖垮整个服务器,通过排序算法的设计便能直接看出面试者算法能力的高低。今天我们就来分享一下五种经典的排序算法,分别是:冒泡排序、插入排序、选择排序、希尔排序、快速排序。二、五种经典算法第一种排序:冒泡排序,也就是我们刚刚学习Java时认识到的第一个排序算法,其排序的逻辑是:从第一个元原创 2020-12-09 14:38:08 · 1090 阅读 · 0 评论