范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

程序员都应该精通的六种算法,你会了吗?

  对于一名优秀的程序员来说,面对一个项目的需求的时候,一定会在脑海里浮现出最适合解决这个问题的方法是什么,选对了算法,就会起到事半功倍的效果,反之,则可能会使程序运行效率低下,还容易出bug。因此,熟悉掌握常用的算法,是对于一个优秀程序员最基本的要求。
  那么,常用的算法都有哪些呢?一般来讲,在我们日常工作中涉及到的算法,通常分为以下几个类型:分治、贪心、迭代、枚举、回溯、动态规划。下面我们来一一介绍这几种算法。
  一、分治算法
  分治算法,顾名思义,是将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。
  分治算法一般分为三个部分:分解问题、解决问题、合并解。
  分治算法适用于那些问题的规模缩小到一定程度就可以解决、并且各子问题之间相互独立,求出来的解可以合并为该问题的解的情况。
  典型例子比如求解一个无序数组中的最大值,即可以采用分治算法,示例如下:
  def pidAndConquer(arr,leftIndex,rightIndex):
  if(rightIndex==leftIndex+1 || rightIndex==leftIndex){
  return Math.max(arr[leftIndex],arr[rightIndex]);
  }
  int mid=(leftIndex+rightIndex)/2;
  int leftMax=pidAndConquer(arr,leftIndex,mid);
  int rightMax=pidAndConquer(arr,mid,rightIndex);
  return Math.max(leftMax,rightMax);
  二、贪心算法
  贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。
  贪心算法的基本思路是把问题分成若干个子问题,然后对每个子问题求解,得到子问题的局部最优解,最后再把子问题的最优解合并成原问题的一个解。这里要注意一点就是贪心算法得到的不一定是全局最优解。这一缺陷导致了贪心算法的适用范围较少,更大的用途在于平衡算法效率和最终结果应用,类似于:反正就走这么多步,肯定给你一个值,至于是不是最优的,那我就管不了了。就好像去菜市场买几样菜,可以经过反复比价之后再买,或者是看到有卖的不管三七二十一先买了,总之最终结果是菜能买回来,但搞不好多花了几块钱。
  典型例子比如部分背包问题:有n个物体,第i个物体的重量为Wi,价值为Vi,在总重量不超过C的情况下让总价值尽量高。每一个物体可以只取走一部分,价值和重量按比例计算。
  贪心策略就是,每次都先拿性价比高的,判断不超过C。
  三、迭代算法
  迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程。迭代算法是用计算机解决问题的一种基本方法,它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。最终得到问题的结果。
  迭代算法适用于那些每步输入参数变量一定,前值可以作为下一步输入参数的问题。
  典型例子比如说,用迭代算法计算斐波那契数列。
  四、枚举算法
  枚举算法是我们在日常中使用到的最多的一个算法,它的核心思想就是:枚举所有的可能。枚举法的本质就是从所有候选答案中去搜索正确地解。
  枚举算法适用于候选答案数量一定的情况。
  典型例子包括鸡钱问题,有公鸡5,母鸡3,三小鸡1,求m钱n鸡的所有可能解。可以采用一个三重循环将所有情况枚举出来。代码如下:
  五、回溯算法
  回溯算法是一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就"回溯"返回,尝试别的路径。
  许多复杂的,规模较大的问题都可以使用回溯法,有"通用解题方法"的美称。
  典型例子是8皇后算法。在8 8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问一共有多少种摆法。
  回溯法是求解皇后问题最经典的方法。算法的思想在于如果一个皇后选定了位置,那么下一个皇后的位置便被限制住了,下一个皇后需要一直找直到找到安全位置,如果没有找到,那么便要回溯到上一个皇后,那么上一个皇后的位置就要改变,这样一直递归直到所有的情况都被举出。
  六、动态规划算法
  动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。
  动态规划算法适用于当某阶段状态给定以后,在这阶段以后的过程的发展不受这段以前各段状态的影响,即无后效性的问题。
  典型例子比如说背包问题,给定背包容量及物品重量和价值,要求背包装的物品价值最大。
  以上就是程序员经常使用的六种经典算法,读者们还了解哪些常用的优秀算法吗?欢迎留言哦。

vivos9e和iqooz3相比较,该如何选择?单从性价比角度来说,当然是iqooz3这款手机的性价比会更高一些。不过这两款手机的侧重点是不一样的,vivos9e这款手机的侧重点在于它的轻薄机身以及出色的拍照能力,如果大家是女性iQOO7堆料能有多猛?小米看了也甘拜下风2021年手机市场,如果你想入手一款顶尖性能的手机,那么只有两个选择其一是iPhone12系列,因为苹果2020款手机搭载了5nm工艺制程的A14处理器其二是骁龙888性能旗舰,由中国科学家取得突破,攻克卡脖子技术,磁性芯片设备自研成功磁性芯片实现自研我国在芯片行业当中的发展是比较晚的,需要突破的技术壁垒也比较的多,但是我国在芯片行业当中被外企几乎垄断的情况下,却依然能够有所突破。如今在北京航天航空大学的不断努力光刻机技术的难点是什么?中国有没有能造光刻机的企业?光刻机的难点是技术封锁,光刻机的关键部件来自不同的发达国家,美国的光栅德国的镜头瑞典的轴承等,关键是这些顶级零件对我国是禁运的。我国的中芯国际早在2017年就预订了一台ASML的7电子产品拆解无线鼠标它们曾经是奢侈品,现在已经司空见惯了。无线鼠标很受欢迎,但是里面有什么呢?在本次拆卸中,我们将观察两只老鼠,看看它们是如何工作的!这篇文章的特点是停产灵都520鼠标和罗技M570轨国家网信办三次通告,八个方面分析对滴滴出行审查的意义国家网信办要求应用商店下架滴滴25款App7月9日,国家网信办发布通告滴滴企业版等25款App存在严重违法违规收集使用个人信息问题,要求应用商店下架上述25款App,各网站平台不得鸿蒙HarmonyOS系统用户已突破3000万,跻身第三大操作系统?华为HarmonyOS操作系统用户已经突破3000万,计划2021年底突破三亿台设备北京时间7月8日,华为官方透露,华为HarmonyOS2。0用户已经达到3000万。新系统发布仅为更具竞争力谷歌Pixel6将会采用硬性OLED面板之前有爆料称Google即将推出的Pixel6和Pixel6Pro都会配备OLED屏幕。这一点都不令人惊讶,毕竟定位中低端的Pixel4a也配备了OLED屏幕。但OLED材质屏幕也独具匠心,Xisem西圣Ava蓝牙耳机,更舒适的半入耳蓝牙耳机初见这款耳机的时候我的内心毫无波澜,毕竟咱也是见过世面的人了,所以对这么一款看起来极为普通的耳机真的是不太感冒。直到我开始正式体验它,我才发现,我小看它了,我们现在首先来看一下它的鸿蒙2。0新一批升级开启一共11款,有你的手机吗?华为全新的智能手机操作系统华为鸿蒙系统在6月举行的发布会上正式推出,同时开启了鸿蒙2。0系统升级更新,到现在华为鸿蒙系统推出已经有一个多月的时间,而华为鸿蒙2。0系统也是加速推送升国产厂商接连传来消息,华为却无计可施,苹果又要落后一局?随着智能手机的不断发展,不可否认的是现在手机的同质化越来越严重。外观设计系统逻辑等方面都在互相之间学习和借鉴,这也就导致各个手机之间的差异化不足,消费者也丧失了购买欲望。当然,近几
曲面屏手机火了这么久,为何苹果却从来不用呢?看完算是搞明白了必须说曲面屏幕为柔性屏幕应用开创了先例,三星的每一代曲面屏幕手机都像艺术品一样精美而精美。我仍然记得我第一次看到三星Noteedge时的感受。科技与美丽的完美结合,完美再现了我对当回首弹出式摄像头?OPPO或将再次引领全面屏时代OPPO这家国际大厂又有猛料了,近日,有媒体爆出OPPO将又有一款弹出式摄像头专利手机,根据爆料的专利显示,新弹出式摄像头手机是一个带有反光镜的双面摄像头。据了解,OPPO和viv互联网时代,用内容营销为企业赋能核心摘要理解内容营销价值凸显,概念理解是应用关键用户偏好和媒介环境日益多元化复杂化,也让广告主在营销策略中面临着更多的困惑和不确定性,而内容营销凭借更加灵活易于接受富有创意等特点,用这招缩小社会的数字鸿沟!适老化改造OPPO又走在行业前面最近,适老化改造问题在网络上热度很高,而央视也重点播报了关爱老年人的相关新闻,比如老年人在使用智能手机时所要面临的学习成本问题,对于他们大部分来说智能手机是比较新鲜的,他们有些人的5G时代2021年中国通信企业变革研究报告核心摘要相较于4G,5G在网络架构实现方式运维及服务对象方面均发生了变化。在网络架构方面,5G射频与天线紧耦合,核心网下沉至更靠近用户侧在实现方式方面,5G核心网已实现IT化,基站2021年中国企业智慧通信产品研究报告核心摘要发展背景宏观环境的波动令中国企业发展面临着极大的不确定性,降本增效将成为企业长期追求的目标。四方面因素使得企业智慧通信产品快速发展1新基建加速2手机网民的普及3行业标准确立弘度AI视频智能诊断惊艳2021北京政法展7月27日,2021全国政法智能化建设技术装备及成果展在北京国家会议中心盛大开幕。来自全国政法委法院检察院公安司法行政监狱戒毒律所制造商经销商代理商运营商工程商系统集成商科研机构等共建万物互融生态圈!OPPO美的完成战略合作签约进入5G时代后,IoT领域成了各家科技公司的兵家必争之地,众多科技巨头纷纷入主IoT市场,各种新意十足的IoT产品纷至沓来。近一年来,OPPO开始着力布局IoT生态,先后发布了大受怎样在一分钟内留住客户?让他对你的网站一见倾心?现如今,互联网中充斥着的大量信息逐渐改变着大家的阅读习惯,对于大多数网民来说,在打开网站后是不会细致到逐帧逐段去详细浏览的。一眼扫过去,你这个网站没啥亮点,也没有我需要的关键信息,LTD营销SaaS实施与服务客户成功的四个部分是什么?LTD营销SaaS是一家为客户提供建站以及相关服务的SaaS服务商,部分合作伙伴在进行推广时可能会不知道从哪里开始,所以我们今天就总结一下LTD营销SaaS实施与服务客户的四个过程织梦DedeCMS开始收费,企业应当如何选择?就在前天,织梦CMS宣布系统开启收费,对所有商用的个人企业,收取5800元的授权费。dedecms(织梦)发布公告除个人非盈利网站外,均需要购买DedeCMS商业使用授权,授权费为