百摩网
当前位置: 首页 生活百科

程序员必知必会的几个算法(程序员必会的十大算法)

时间:2023-06-14 作者: 小编 阅读量: 7 栏目名: 生活百科

程序员必会的十大算法算法是所有程序员必备的基本功,不会算法的程序员都容易被耻笑,今天就为大家盘点出所有程序员都需要掌握的十大算法,可以依次进行学习一.FloydWarshall算法Floyd-Warshall算法,中文称。

算法是所有程序员必备的基本功,不会算法的程序员都容易被耻笑,今天就为大家盘点出 所有程序员都需要掌握的十大算法,可以依次进行学习

一.Floyd Warshall算法

Floyd-Warshall算法,中文称弗洛伊德算法或佛洛伊德算法,是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权(但不可存在负权回路)的最短路径问题,同时也被用于计算有向图的传递闭包。

二.二分查找

也称折半查找算法、对数查找算法,是一种在有序数组中查找某一特定元素的搜索算法。

搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。

如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。

三.贝尔曼福特算法

贝尔曼福特算法是求解单元最短路径问题的一种算法,由理查德贝尔曼和莱斯特福特创立的。有时候这种算法也被称为Moore-Bellman-ford算法,因为Edward F . Moore也为这个算法的发展做出了贡献。

它的原理是对图进行|V|-1次松弛操作,得到所有可能的最短路径。其优于迪克斯彻算法的方面是边的权值可以为负数、实现简单,缺点是时间复杂度过高,高达O(|V||E|)。但算法可以进行若干种优化,提高了效率。

四.快速排序

快速排序是一种交换类排序,可以理解成对冒泡排序的一种改进排序,但快速排序的复杂度相对于冒泡排序的提升相当大。他的思路是,选取一个关键字K,将所有比K小的记录放在K前面,比K大的数放在K后面,一趟快速排序完成,完整的快速排序就是对分出的每个新数组再进行一次快速排序,也就是一趟排序的递归操作。

五.贪心算法

顾名思义,贪心法,贪心算法总是做出在当前看来是最好的选择。虽然贪心算法不是对所有问题都能得到整体最优解,但对范围相当广的许多问题都能产生整体最优解或是问题的次优解。因此有很好使用它的必要性。

贪心算法既是一种解题策略,也是一种解题思路。

六.拓扑排序

拓扑排序是一种把有向无环图转换成线性序列的排序算法,算法的输入是一个有向无环图,经过算法分析吧图中的所有节点按照先后顺序进行拆解,最后得到一个有顺序的队列,在前的节点靠前,越靠后的节点或有多个节点指向该节点,那这个节点再队列中的位置就越靠后。

七.动态规划

很多人都会觉得动态规划很难,动态规划的核心思想有以下两点:

第一,任何看似很复杂很难解决的问题,其实都可以归结为一系列子问题,无论一个问题有多复杂,只要他有解决方案,就可以归结为N个子问题,某种意义上,我们可以认为动态规划是对递归的一种优化;

第二,我们在解决N个子问题的时候,要留心整体上有没有做无用功,通过备忘录的方式保存中间状态,使得不反复去计算已经求得的中间解。

八.最小生成树

最小生成树问题,简称MST,指给定一个带权的无向连通图,如果选取一棵生成树,使树上所有边上权的总和为最小,这叫最小生成树。

图有N个顶点,就一定有N-1条边,且必须包含所有顶点,所有边都在图中。解决最小生成树问题的算法主要有普利姆算法和克鲁斯卡尔算法

九.深度搜索和广度搜索算法

又称DFS和BFS。深度优先搜索的原理是:首先选择一个顶点作为起始点,接着从他各个相邻点出发进行依次访问,直到所有与起始点有路径相通的顶点都被访问到。若此时有没被访问到的节点,则选择一个其他顶点进行再次访问。

广度优先搜索的原理是:选择一个顶点作为起始点,依次访问该起始点的所有邻接点,再根据邻接点访问他们各自的邻接点,并保证先访问节点的邻接点先与后访问节点的邻接点被访问。

十.朴素贝叶斯分类算法

朴素贝叶斯分类算法是一种基于贝叶斯定理的简单概率分类算法。

贝叶斯分类的基础是概率推理,就是在各种条件的存在不确定,仅知其出现概率的情况下,如何完成推理和决策任务。概率推理是与确定性推理相对应的。而朴素贝叶斯分类器是基于独立假设的,即假设样本每个特征与其他特征都不相关。

看完不要忘了点赞收藏哦,谢谢大家。

    推荐阅读
  • 扬州何园游玩指南(扬州何园游玩指南图片)

    门票价格:何园旺季时间为3、4、5、8、9、10六个月,淡季时间为1、2、6、7、11、12六个月。何园,原名寄啸山庄,是扬州私家园林中的压轴之作。被誉为“晚清第一园”。交通:市内乘6路、19路、公交旅游专线和209路至何园站下门票;火车站坐26路到石塔寺/西门换乘209路到何园;汽车西站公交停车场乘坐19路到何园;汽车东站乘坐19路到何园;城北客运总站乘坐216路/40路到人民大厦(中医院)/西门换乘209路到何园。

  • 牛犇是什么意思(牛犇含义)

    接下来我们就一起去了解一下吧!牛犇是什么意思“犇”就是“跑”或“奔”的意思。“牛犇”这两个字加起来共有四个牛字,而“牛”在网络中是很厉害的意思。牛犇其实叫张学景。1948年赴香港拍片,临行前谢添说:“现在大伙都叫你小牛子,你又属牛,那就再添三只牛吧!”故有“牛犇”之名。

  • 野水鸡属于国家保护动物吗(蛤蟆竹鼠野鸡都是保护动物)

    涉及动物保护的案件,警方一定会严厉打击。经过调查,警方于2019年7月将犯罪嫌疑人胡某抓获,现场查获国家一级、二级保护动物40余只。王继超表示,两起案件均已移送检察院。根据《中华人民共和国刑法》第341条,犯罪嫌疑人可能面临5年以下有期徒刑或者拘役,并处罚金。根据相关规定,饲养保护动物需要驯养繁殖许可证,而买卖保护动物需要野生动物经营许可证,私自捕捉系违法行为。

  • 幼儿园全方位无死角消毒进行时(最新开学前天津大中小学进行一次预防性消毒)

    在无明确传染源时,不对室外环境开展大规模消毒,不对外环境进行空气消毒。清除污染物后,应对污染的环境物体表面进行消毒。盛放污染物的容器可用有效氯5000mg/L含氯消毒剂进行浸泡消毒30分钟后清洗干净。消毒剂应在有效期内使用,仅用于物体及外环境的消毒处理,切忌内服。含氯消毒剂不与其他清洁剂混用,食堂内禁止用乙醇消毒液进行喷洒。消毒人员负责本园内预防性消毒工作,完成工作后进行记录和存档。

  • 烂肉泡豇豆的做法(烂肉泡豇豆的做法窍门)

    7、最后加入少量盐巴和味精调味即可出锅。

  • 炒烙馍怎么好吃(怎么做好吃的炒烙馍)

    以下内容希望对你有帮助!炒烙馍怎么好吃青椒,猪肉,烙馍分别切丝备用。炒锅烧热,倒入适量食用油。油烧至7分热时放入青椒丝。翻炒出香味,放入肉丝,翻炒至肉丝变色,加入适量老抽上色。加入适量开水等到水开时加入适量盐、鸡粉调味。

  • 8p强制重启是哪两个键(iphone8p强制重启是哪个键)

    8p强制重启需要用到三个键,分别是音量“+”键、音量“-”键、电源键,方法为:1、按一下音量“+”键,松开;2、迅速按一下音量“-”键,松开;3、迅速长按住电源键,大概10秒左右,直到手机开始重启为止。

  • 枫的歌词(歌曲枫的歌词)

    歌词云在我们心里搁下一块阴影,现在小编就来说说关于枫的歌词?下面内容希望能帮助到你,我们来一起看看吧!歌曲时长04:35。收录在周杰伦2005年11月发行的专辑《十一月的肖邦》中,一上线就收到了广泛的关注,收获了众多的喜爱。

  • 日本柿子不能和什么一起吃(日本柿子不要和什么同吃)

    中医学中认为,螃蟹与柿子都属寒性食物,故而不能同食。从现代医学的角度来看,含高蛋白的蟹、鱼、虾在鞣酸的作用下,很易凝固成块,即胃柿石,随之引发腹痛、呕吐、腹泻等症。柿子最好不要与醋同吃,吃柿子的前后也最好不要吃醋,否则柿子中含有的柿胶会和醋酸反映生成块状物体,留存在人体的胃中。酒味甘辛微苦,性大热有毒,而柿子则性寒,因此两种食物不能同时食用。

  • 陆羽来自未来(我们现在可能喝的是荼叶)

    茶,在世界上已经存在数千年之久了。追根溯源,我国是世界上最早发现和利用茶叶的国家,被誉为茶的祖国。如今,茶已成为中华民族的举国之饮。清欢电台旨在通过持续分享茶知识,传播茶理念,让更多的人爱上喝茶,把喝茶当作日常生活中的一部分。现在我们一般把「荼」看做茶的古体字。从此以后,「茶」就作为专有名称一直沿用至今。