摘要: 大学的时候记得最难得就是这个弗洛伊德了,记得考研的时候看到这个三重循环,我直接放弃,然后对自己说“这种变态算法基本不考”上研了也见了世面了。知道DP,在这里汗本科时候的算法课...最近由于找工作 于是就复习了下算法,参考了《算法导论》发现弗洛伊德是DP的一种应用 其实比较简单弗洛伊德算法是求解图的多源最短路径的。具有重叠子问题结构为:Floyd-Warshall算法(Flo... 阅读全文
posted @ 2010-08-14 23:41 David Luo 阅读(28895) 评论(0) 推荐(4) 编辑
摘要: 此题面试时常有:解答方法有以下三种:1。 直接迭代求解,这个很简单,复杂度O(n)。1。 分治法。复杂度 logn 此方法有点凹,原理是:a的n次方可以分别对应两种情况: 1。 n为偶数 那么 an= (a*a)n/2 2。n为奇数 那么an= a*an-1代码如下:[代码]3.此方法复杂度为 n的二进制表示中最高位1的index原理为:事先建立a的 2m m为(0,x);的表... 阅读全文
posted @ 2010-08-14 17:41 David Luo 阅读(1607) 评论(0) 推荐(0) 编辑
摘要: 归并排序想法很简单,和分治有点像 复杂度是 O(nlogn)空间复杂度O(N)归并排序是稳定排序 在大规模信息处理外排序中用得比较多,如多路归并败者树。练习手写了下归并排序,犯了n多错,都是很傻得错,下次写代码前一定要想清楚..[代码]利用归并排序 我们还可以求逆序对的个数。如果定义从小到大是正序的话,所谓逆序对就是指,在数组中s[i]>s[j] 其中 i<j 的对数的个数。。利用归并... 阅读全文
posted @ 2010-08-14 15:30 David Luo 阅读(866) 评论(0) 推荐(0) 编辑