我是一名大三学生,我有一门名为“算法设计与分析”的课程。课程很酷,但教练不是。我不了解蛮力以及如何计算操作次数以及如何计算时间复杂度(最差,最好,平均),我试图在网上搜索它,但每次我都以 big-o 结尾符号和我不想要的分而治之。如果你们中的任何人都可以从此链接下载讲师幻灯片,看看我在说什么......
我真的需要你的帮助,我保证我会尽力而为
我是一名大三学生,我有一门名为“算法设计与分析”的课程。课程很酷,但教练不是。我不了解蛮力以及如何计算操作次数以及如何计算时间复杂度(最差,最好,平均),我试图在网上搜索它,但每次我都以 big-o 结尾符号和我不想要的分而治之。如果你们中的任何人都可以从此链接下载讲师幻灯片,看看我在说什么......
我真的需要你的帮助,我保证我会尽力而为
蛮力是一类“算法”(或简单地说是“做事方式”),你不会试图变得聪明,只是愚蠢的搜索。例如:如果你想在电话簿中查找电话号码,聪明的解决方案是观察所有条目都按姓氏排序,然后直接查找正确的字母等。蛮力的解决方案是阅读从一开始就查看电话簿,检查每个姓名,并在找到正确的姓名时停止。
观看本系列算法的前几节课,您可能会有所收获。
蛮力是测试特定问题的所有可能配置并测试其中一个是否与解决方案的属性匹配的任务。
考虑一个 4 位数的密码。如果丢失,您可以测试从 0000 到 9999 的所有可能代码以找到正确的代码。这是一种蛮力。
同样的东西可以用来解决一些计算机科学问题,例如 0/1 背包问题,小偷想找出偷什么。每个对象都有值 v[i] 和权重 w[i]。他或她想找出提供最大价值且重量小于“W”的组合。这个问题的一个可能的解决方案是考虑对象的所有组合并找到每个组合的值和权重,然后选择最优的组合。
我可以举一个关于选择排序和冒泡排序的示例如何计算时间复杂度以及如何计算操作以及旅行商问题是什么
选择排序算法可从 Wikipedia 获得伪代码,冒泡排序也是如此。时间复杂度是通过算法运行直到得到正确答案的次数来计算的。
旅行商问题是计算机科学中的一个经典问题,它通过找出问题的答案来关联算法的执行时间。
以机智:
问题是:给定多个城市以及从任何城市到任何其他城市的旅行成本,在每个城市恰好访问一次然后返回起始城市的成本最低的往返路线是什么?
如果我尝试使用一种算法来暴力破解最佳路线,那么在任何比最简单路线更大的路线上都需要很长时间。这就是 Big(O) 的用武之地,它向我展示了我选择的每种算法将如何影响我需要多长时间才能得到答案。
我根据您为其他答案留下的评论发布了这个答案。就其价值而言,Big-O 表示法正是您想要的,它是您的算法执行所需时间的指标。