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

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

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

程序员必会的十大算法算法是所有程序员必备的基本功,不会算法的程序员都容易被耻笑,今天就为大家盘点出所有程序员都需要掌握的十大算法,可以依次进行学习一.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。深度优先搜索的原理是:首先选择一个顶点作为起始点,接着从他各个相邻点出发进行依次访问,直到所有与起始点有路径相通的顶点都被访问到。若此时有没被访问到的节点,则选择一个其他顶点进行再次访问。

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

十.朴素贝叶斯分类算法

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

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

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

    推荐阅读
  • 风骚的意思(风骚解释)

    风骚的意思“风骚”原义是《诗经》中的《国风》和以《离骚》为代表的《楚辞》的并称,后代用来泛称文学;也指人举止轻佻放荡或俊俏美好。相传东吴孙权的军队着黑色军服,驻扎在秦淮河北岸以拱卫京都的营地称“乌衣营”,这就是乌衣巷的来历。意思是400多年来,文体虽不断在变,但仍以《诗经》的《国风》和《楚辞》的《离骚》为典范。

  • 木材属于什么材料(木质属于什么材料)

    如果用在建筑上面,是建筑材料;如果用在制板、家具板、做复合门来用,是复合材料;如果用在香菇食用菌、生物能源燃料,是生物材料。木头为林业主产物,对于人类生活起着很大的支持作用,根据木材不同的性质特征,人们将木材用于不同途径。

  • 学炸麻圆的方法(怎样炸麻圆好吃)

    学炸麻圆的方法?学炸麻圆的方法食材:地瓜一个、糯米粉一点、香芋馅一点。油炸麻圆这一步很关键,锅里烧油油温烧到两三层热,调小火。油的量要莫过麻圆的高度,这样麻圆才会受热均匀,不会开裂。炸至麻圆飘起的时候,用铲子或勺子挨个的按压一下,按压是增大了它的体积,这也是油炸过后麻圆空心的关键;在整个炸至的过程中,我们要用勺子轻轻按压,不停的翻转,炸至表面金黄变硬,这样出锅后的麻圆才不会塌陷,捞出控干油。

  • 钢之炼金术师动画看哪部(最火的热血动漫之一)

    钢之炼金术师动画看哪部?如果说让我推荐一部富有深刻含义的动漫,今天小编就来聊一聊关于钢之炼金术师动画看哪部?接下来我们就一起去研究一下吧!

  • 深圳鸡煲的做法和配方(鸡煲怎么做)

    深圳鸡煲的做法和配方食材:三黄鸡1只、青尖椒、红葱头、姜、风味豆豉酱1勺、柱候酱1勺、老抽1勺、红烧酱油2勺、料酒1勺、油。鸡斩小块,红葱头切片,姜切片,青椒切段备用。下入红葱头,姜片用筷子翻炒。炒出葱姜味,红葱头微黄时,放入1勺风味豆豉酱、1勺柱候酱。放入鸡块翻炒,小火可能有点慢,可开中火,加盖焖。待鸡肉变色,肉质发紧时,加入1勺老抽、2勺红烧酱油。沿锅边加入1勺料酒,盖盖,小火焖烧。

  • 奥迪国门店口碑怎么样 奥迪4s店好吗

    奥迪国门店口碑怎么样我是一名机修工,有两年的维修经验。今天下午出去找工作,看到很多专做奔驰、宝马、奥迪修理店的店铺。奔驰有wis,市面上盗版很多,很容易找到。奥迪还是奥拓是什么梗人不是聪明就是勤奋,聪明勤奋最好。有些人甚至在不知情的情况下违规,扣分、桑心,甚至关店。举报分不严重,但其实小偷阴险,扣一两分,被降职,上架商品减少一半。

  • 鹅掌木水培养殖方法和注意事项(鹅掌柴水培养殖方法)

    约经过45天左右水插的鹅掌柴枝条便生出6cm米以上的根,并且长出白色根毛,这时即可进行正常管理。水培鹅掌柴初期,3天就要换1次水,温度也是保持在15℃以上。水培鹅掌柴的水培不可过高,不要浸泡到鹅掌柴的树干部位。越冬温度不要低于5℃,否则会造成鹅掌柴叶片脱落。不过还是要定期给鹅掌柴晒晒把太阳,但夏季要避免烈日暴晒。

  • 凤眼菩提怎么养护(凤眼菩提养护的方法)

    凤眼菩提怎么养护夏天最适合带菩提,因为菩提子喜欢油脂皮肤,夏天佩戴会使菩提子吸收身体上的油脂,让它更加光泽照人。平时不带的时候,把菩提子密封在小袋中,防止风干开裂。尤其是新的菩提子,最忌讳温差变化大,大风干燥的天气。玩的时候,一定要把手洗干净了,为了防止一些灰尘污垢沾到菩提子缝隙里,很难清理。油多了会沉积在菩提子上形成深褐色花点,影响美观。

  • 如何处理淘宝卖家不发货(淘宝卖家不发货怎么办)

    找到订单,直接申请退款,退款原因选择“缺货”,退货说明也填写类似的内容,提交退款申请。如果在淘宝天猫商城购买的,对方未在72小时内发货,申请退款成功后还可以获得一笔赔偿的,普通集市店没有这种待遇。如果在集市店购买的,买家可根据对方的服务态度考虑是否投诉,卖家态度较好,建议顾客就别投诉了,淘宝经营也不容易,互相理解,如果态度恶劣,建议立刻投诉,要把这种淘宝卖家清除淘宝队伍。

  • 奥迪突然刹车是什么问题(奥迪正常行驶途中突然刹车制动)

    凭经验判断,ABS有可能失控了。拖车拖回来检查车辆故障启动车辆,制动故障出现在仪表。很明显车辆存在了故障,ABS可能损坏。具体还要进一步确定。ABS泵已经损坏,确定故障,开始维修如图所示,更换完毕以后,加上刹车油,然后放气。换好以后故障还是显示仪表,不要着急,进行编程匹配ABS泵,用专检就可以。匹配完成以后,故障码自动消除。ABS是通过控制刹车油压的收放,来达到对车轮抱死的控制,使车辆始终处于临界抱死的间隙滚动状态。