“AI制药”新时代来临!
|
假如有两个算法的时间复杂度,分别是log以2为底n的对数和log以10为底n的对数,那么这里如果还记得高中数学的话,应该不能理解以2为底n的对数 = 以2为底10的对数 * 以10为底n的对数。 而以2为底10的对数是一个常数,在上文已经讲述了我们计算时间复杂度是忽略常数项系数的。 抽象一下就是在时间复杂度的计算过程中,log以i为底n的对数等于log 以j为底n的对数,所以忽略了i,直接说是logn。 这样就应该不难理解为什么忽略底数了。 举一个例子 通过这道面试题目,来分析一下时间复杂度。题目描述:找出n个字符串中相同的两个字符串(假设这里只有两个相同的字符串)。 如果是暴力枚举的话,时间复杂度是多少呢,是O(n^2)么? 这里一些同学会忽略了字符串比较的时间消耗,这里并不像int 型数字做比较那么简单,除了n^2 次的遍历次数外,字符串比较依然要消耗m次操作(m也就是字母串的长度),所以时间复杂度是O(m * n * n)。 接下来再想一下其他解题思路。 先排对n个字符串按字典序来排序,排序后n个字符串就是有序的,意味着两个相同的字符串就是挨在一起,然后在遍历一遍n个字符串,这样就找到两个相同的字符串了。 那看看这种算法的时间复杂度,快速排序时间复杂度为O(nlogn),依然要考虑字符串的长度是m,那么快速排序每次的比较都要有m次的字符比较的操作,就是O(m * n * logn) 。 之后还要遍历一遍这n个字符串找出两个相同的字符串,别忘了遍历的时候依然要比较字符串,所以总共的时间复杂度是 O(m * n * logn + n * m)。 我们对O(m * n * logn + n * m) 进行简化操作,把m * n提取出来变成 O(m * n * (logn + 1)),再省略常数项最后的时间复杂度是 O(m * n * logn)。 最后很明显O(m * n * logn) 要优于O(m * n * n)! 所以先把字符串集合排序再遍历一遍找到两个相同字符串的方法要比直接暴力枚举的方式更快。 这就是我们通过分析两种算法的时间复杂度得来的。 「当然这不是这道题目的最优解,我仅仅是用这道题目来讲解一下时间复杂度」。 总结 本篇讲解了什么是时间复杂度,复杂度是用来干什么,以及数据规模对时间复杂度的影响。 还讲解了被大多数同学忽略的大O的定义以及log究竟是以谁为底的问题。 再分析了如何简化复杂的时间复杂度,最后举一个具体的例子,把本篇的内容串起来。
相信看完本篇,大家对时间复杂度的认识会深刻很多! 理想情况下,你希望与云平台计算供应商建立关系,使你能够利用他们的知识库进行战略指导、业务用例开发、工作负载优先级等。顶级组织可能需要与CSP的高级技术架构师召开两年一次的会议,以集思广益对技术和平台进行改进,从而使你的业务在竞争中领先一步。对于中小企业,请遵循CSP或云平台安全联盟等本地组织的同行提供的白皮书和技术指导形式的最佳实践建议。 迁移到云平台计算是一个带来创新的战略决策,通过与你的云平台供应商建立强大而灵活的关系来寻求这种创新。 使用优秀的云平台中心 业务运营需要灵活地适应新兴的云平台技术,采用技术的速度和运营稳定性是两个必须要平衡的因素。优秀的平台中心能够找出正确的工具和实践,这些工具和实践能够授权开发团队以迅速的方式为客户交付高质量的数字体验。 事先规划 最后一步就是需要在早期就计划好并密切管理企业的云平台,因为云平台是一个顶级解决方案和服务的生态系统,所以我们的目标是建立一个更加多样化的供应商基础和混合IT环境。避免使用一家云平台提供商很重要,这可以带来很多好处。 随着云平台计算技术的发展和新解决方案的出现,你还应该计划与供应商的高级技术工程师举行定期会议。你与云平台服务提供商的关系应该以协作和咨询为框架。你的云平台提供商应该成为你的合作伙伴,为你的企业提供多面云平台环境,以获得所有的好处,并在你的市场中获得竞争优势。
使用云平台是大势所趋,上述这五个基本因素与所有组织的云平台都有关。 (编辑:广元站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

