2018年6月27日

贪婪算法--Python

摘要: 贪婪算法:每步都采取最优的做法,即每步都选择局部最优解,最终得到的就是全局最优解。 假设你办了个广播节目,要让全美50个州的听众都收听得到。为此你需要决定在哪些广播台播出。在每个广播台播出都需要支付费用,因此你力图在尽可能少的广播台播出。使用贪婪算法可得到非常接近的解:1、选出这样一个广播台,即它覆盖了最多的未覆盖州,即便这个广播台覆盖了一些一覆盖的州也没有关系;2、重复第一步,直到覆盖了所有的州... 阅读全文

posted @ 2018-06-27 14:44 可豆豆 阅读(1413) 评论(0) 推荐(0)

Dijkstra Algorithm 迪克特斯拉算法--Python

摘要: 迪克斯拉特算法: 1、找出代价最小的节点,即可在最短时间内到达的节点; 2、更新节点的邻居的开销; 3、重复这个过程,直到图中的每个节点都这样做了; 4、计算最终路径。 阅读全文

posted @ 2018-06-27 14:15 可豆豆 阅读(1564) 评论(0) 推荐(0)

广度优先搜索

摘要: 广度优先搜索指出是否有s到t的路径如果有,广度优先搜索将找出最短路径队列是先进先出栈是后进先出要按照加入顺序检查搜索列表中的元素,否则找到的就不是最短路径,因此搜索列表必须是队列对于检查过的元素,务必不要再去检查,否则可能导致无限循环 ''' 广度优先搜索指出是否有s到t的路径 如果有,广度优先搜索将找出最短路径 队列是先进先出 栈是后进先出 要按照加入顺序检查搜索列表中的元素,否则找到的就不是... 阅读全文

posted @ 2018-06-27 10:28 可豆豆 阅读(148) 评论(0) 推荐(0)

二分法查找--Python

摘要: 二分查找算法,最常规的应用就是在一个有序数组中找特定的数。一般分为四步走: 1. 判定条件为low小于high,low=0, high=size-1 2. mid=(low+high) / 2 3. 如果data[mid]满足条件直接返回,如果满足条件的数据在mid的右边则将low=mid+1,如果 阅读全文

posted @ 2018-06-27 10:00 可豆豆 阅读(156) 评论(0) 推荐(0)

选择排序-Python & Java

摘要: 选择排序:1、找出最小的数值放在第一位2、找出剩余数据中最小的数值放在第二位,以此类推,直到最后一个数值 算法的时间复杂度为:O(n) Java版: 阅读全文

posted @ 2018-06-27 09:25 可豆豆 阅读(110) 评论(0) 推荐(0)

快速排序--Python实现

摘要: 快速排序算法:1、选择一个基准数2、小于基准数的放左边,大于基准数的放右边3、利用递归的方法针对左边的数据进行快速排序,再对右边的数据进行快速排序4、递归停止的条件:数组为空或者只有一个元素时间复杂度为:O(nlogn),远小于选择排序 def quick_sort(list): if(len(list) base] return quick_sort(less) + ... 阅读全文

posted @ 2018-06-27 09:06 可豆豆 阅读(172) 评论(0) 推荐(0)

导航