摘要:import urllib,urllib2,cookielibfrom BeautifulSoup import BeautifulSoupmyCookie = urllib2.HTTPCookieProcessor(cookielib.CookieJar())openner = urllib2.build_opener(myCookie)post_data = {'email':'Chenxof...
阅读全文
摘要:周末了,实验室的网速还是不给力啊,不知道doctors都在干啥,,,最近都在做算法作业,昨天晚上看了一部电影《将爱进行到底》,刚打开电影没多久就听到了很熟悉的旋律,让我很是惊讶,这竟然就是电视版的那首主旋律,十几年过去了,徐静蕾从初出茅庐到现在成为了老徐,我也从黄毛丫头到现在成为了男子汉,浮生若梦,岁月流沙。将爱电影的主题曲《因为爱情》很好听,王菲的声音空灵虚无缥缈,与陈奕迅共同演绎了一首温馨甜...
阅读全文
摘要:问题: 假设有n种面值不同的硬币,个个面值存于数组T[1:n]中,现在用这些硬币来找钱,各种硬币的使用个数不限; 求对于给定的钱数N,最少可以由几枚硬币组成,并输出硬币序列。 分析: 假设对于i = 1...N-1, 所需最少的硬币数Count(i) 已知, 那么对于N,所需的硬币数为Min( Count(i) + Count(N-i)) , i=1...N-1; 于是一个直观的方法是用递归计算。...
阅读全文
摘要:问题描述 设A[1..n]是一个包含n个不同数的数组。如果在i<j的情况下,有A[i]>A[j],则(i, j)就称为A中的一个逆序对(inversion)。给出一个算法,它能用Θ(nlgn)的最坏运行时间,确定n个元素的任何排列中逆序对的数目。 算法思想 算法实现类似于合并排序,但需要额外处理逆序数的计数。因此,逆序数的计算相当于合并排序的副产品。在下面的代码中将global num num ...
阅读全文
摘要:问题 :对于两个长度均为n的已排序的序列,确定这两个序列的2n个元素的中位数。 解决此问题的算法思想:设两个长度为n的数列分别为x[ 0 : n -1]和y[ 0 : n -1],分别找出这两个数列的中位数x[i]和y[ j ],二者进行比较,根据比较结果可以在每个数列中减少一半的搜索范围,然后再分别取两个子数列的中位数再比较,再减少搜索范围,继续下去直到找到最后结果。采用分治法来做,时间复杂度:...
阅读全文
摘要:1. 动态规划与分治法: 分治法很容易划分子问题,子问题与子问题之间彼此独立,合并子问题的解很容易得到问题的解。一般采用递归来实现子问题的划分与合并这个思想。常见的问题如前面所讲的快速排序,归并排序等问题。 动态规划解决的问题能够分为一系列的小问题,综合子问题的解推导出大问题的解,问题求解耗时会按问题规模呈幂级数增加。为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子...
阅读全文
摘要:常见的排序算法有选择排序,冒泡排序,快速排序,归并排序,Hash排序等,这里面就快速排序,归并排序和堆排序进行讨论。其中堆排序是各大热门公司机试的热门题目。最近在学习python,我原来是喜欢java的,用过一段时间的perl,感觉perl实在是太晦涩了,高度利用了语言符号。Python代码可读性很强,如同一篇洋洋洒洒的散文。废话不多说,直接上代码供大家参考。1.归并排序。 归并排序,稳定的排序算法。下面给出Java代码和Python代码(ChenxofHit@gmail.com):Java代码:package chenx.sorting;public class MergeSort imp.
阅读全文