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