经典算法
心之凌儿
写代码是专业的
展开
-
经典算法-分治(二分查找案例)
前言在介绍完递归、枚举、BF算法等经典算法后,今天来介绍的就是分治法一、什么是分治法在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并(百度百科)二,分治法与递归的区分递归是一种编程技巧,而分治法更像是解决问题的思维方式,使用分治法解决问题可以使用递归这种编程技巧来完成。两者的层面有一定的区别,分治法更偏向于解题的理论层面,而递原创 2020-10-29 14:52:53 · 912 阅读 · 5 评论 -
经典算法-BF算法(字符串匹配)
前言字符串的匹配算法也是很经典的一个算法,在面试的时候常常会遇到,而BF算法是字符串模式匹配中的一个简单的算法1,什么是BF算法BF算法,即暴力(Brute Force)算法,是普通的模式匹配算法,思想简单,代码结构也简单,但是对于资源的消耗是比较大的BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。2,代码实现分析:要完成对于所有字符原创 2020-10-26 22:50:50 · 2715 阅读 · 4 评论 -
经典算法 -枚举(百钱百鸡案例)
前言算法系列第二站是枚举,也叫穷举和暴力破解法,和名字一样,简单直接,一起来看看吧一,什么是穷举在进行归纳推理时,如果逐个考察了某类事件的所有可能情况,因而得出一般结论,那么这结论是可靠的,这种归纳方法叫做枚举法枚举法的特点就是可以对于无法规律性解决的问题进行蛮力解决,但是带来的副作用就是当运算量级太大时就很难去应付二,算法的实现案例:百鸡问题有鸡翁一,值钱伍;鸡母一,值钱三;鸡鶵三,值钱一。凡百钱买鸡百只,问鸡翁、母、鶵各几何?对本问题分析,三种鸡的数量关系满足:nub(公鸡)+nu原创 2020-10-24 22:06:22 · 3519 阅读 · 0 评论 -
经典算法-递归(生兔子案例)
前言算法是一个程序员必备的知识,从现在开始,来和我学习算法吧!一、什么是递归递归是数学上递推概念在计算机编程上的实现方式,简单的来说就是一种程序调用自身的编程技巧二、使用案例有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?首先对于题进行分析:前几个月兔子的数量为:1,1,2,3,5,8,13,21,34,55,89,144,从数据中可以发现从第三个月开始,每个月的兔子数量都是前两个月兔子数量之和这个时原创 2020-10-22 21:37:34 · 5331 阅读 · 5 评论