
算法导论
江湖怎么没有水
这个作者很懒,什么都没留下…
展开
-
k路合并_败者树算法
假定有k个有序数组,每个数组中含有n个元素,您的任务是将它们合并为单独的一个有序数组,该数组共有kn个元素。设计和实现 一个有效的分治算法解决k-路合并操作问题,并分析时间复杂度。 介于本人水平有限,在参考了许多大神的博客后贴上自己的代码;public class MultipleMerge { public static void main(String[] args) {原创 2017-10-01 15:44:53 · 595 阅读 · 0 评论 -
两种方法求最大公约数
之前求最大公约数只知道最经典的辗转相除法: private static int gcd_1(int a,int b){//辗转相除法 int temp=0; while(a>0){ temp=b%a; b=a; a=temp; } retu原创 2017-10-07 15:40:19 · 485 阅读 · 0 评论 -
最近点对算法分析Closest Pair of Points
Given n points in the plane, find a pair with smallest Euclidean distance between them. 题目很简单,就是在二维平面上寻找到距离最近的点对。最直接的算法就是暴力寻找法。一个一个找呗,复杂度显然是O(n^2)。 public static int minDis(Point[] Ps,int start,int原创 2017-10-11 11:06:17 · 3402 阅读 · 0 评论 -
经典的回溯算法——八皇后问题
经典的八皇后问题:棋盘八行八列,如何摆放八个皇后,使她们不能相互攻击,注意皇后的攻击范围是竖直、水平和两条45°线。 题目来源leetcode 分析(假设要放的位置是i,j): 首先八个皇后肯定分布在八个行上面,只需要一行一行遍历。 接着就是判定任意一个位置(m,n)是否可以放皇后。 竖直条件:j == n 45°条件: i+j == m+n || i-j == m-n...原创 2018-07-03 16:35:18 · 366 阅读 · 0 评论