从《基于比较的排序结构总结》中我们知道:全依赖“比较”操作的排序算法时间复杂度的一个下界O(N*logN)。但确实存在更快的算法。这些算法并不是不用“比较”操作,也不是想办法将比较操作的次数减少到logN。而是利用对待排数据的某些限定性假设,来避免绝大多数的“比较”操作。桶排序就是这样的原理。桶排序的基本思想假设有一组长度为N的待排关键字序列K[1....n]。首先将这个序列划分成M个的子区间(桶)。然后基于某种映射函数,将待排序列的关键字k映射到第i个桶
系统 2019-08-29 21:59:41 2119
PyDevforEclipse8/15/20102:36:26PMPyDev安装和配置安装PyDev在安装PyDev之前,要保证您已经安装了Java1.4或更高版本、Eclipse以及Python。接下来,开始安装PyDev插件。启动Eclipse,利用EclipseUpdateManager安装PyDev。在Eclipse菜单栏中找到Help栏,选择Help>SoftwareUpdates>FindandInstall。选择Searchfornewfea
系统 2019-08-12 09:30:00 2119
shell中可能经常能看到:>/dev/null2>&1命令的结果可以通过%>的形式来定义输出/dev/null代表空设备文件>代表重定向到哪里,例如:echo"123">/home/123.txt1表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"2表示stderr标准错误&表示等同于的意思,2>&1,表示2的输出重定向等同于1那么本文标题的语句:1>/dev/null首先表示标准输出重定向到空设备文件
系统 2019-08-12 09:29:56 2119
ApacheLicence2.0ApacheLicence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:需要给代码的用户一份ApacheLicence如果你修改了代码,需要在被修改的文件中说明。在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。如果再发布的
系统 2019-08-12 09:27:33 2119
第一个Python程序交互式编程交互式编程不需要创建脚本文件,是通过Python解释器的交互模式进来编写代码。linux上你只需要在命令行中输入Python命令即可启动交互式编程,提示窗口如下:$pythonPython2.7.6(default,Sep92014,15:04:36)[GCC4.2.1CompatibleAppleLLVM6.0(clang-600.0.39)]ondarwinType“help”,“copyright”,“credits”
系统 2019-09-27 17:56:51 2118
1.Python中的异常栈跟踪之前在做Java的时候,异常对象默认就包含stacktrace相关的信息,通过异常对象的相关方法printStackTrace()和getStackTrace()等方法就可以取到异常栈信息,能打印到log辅助调试或者做一些别的事情。但是到了Python,在2.x中,异常对象可以是任何对象,经常看到很多代码是直接raise一个字符串出来,因此就不能像Java那样方便的获取异常栈了,因为异常对象和异常栈是分开的。而多数Python
系统 2019-09-27 17:56:45 2118
最近在使用爬虫爬取数据时,经常会返回403代码,大致意思是该IP访问过于频繁,被限制访问。限制IP访问网站最常用的反爬手段了,其实破解也很容易,就是在爬取网站是使用代理即可,这个IP被限制了,就使用其他的IP。对于高大上的公司来说,他们基本都使用收费的代理,基本不会有什么问题,比较稳定。像我这样的矮矬穷,肯定是用不起收费的代理。一般都是使用国内免费的代理,网上也有很多提供免费的代理。很多人都是从网上爬取一批免费的代理IP,存放在存储媒介中,例如excel文
系统 2019-09-27 17:56:04 2118
PythonHTTP客户端自定义Cookie实现实例几乎所有脚本语言都提供了方便的HTTP客户端处理的功能,Python也不例外,使用urllib和urllib2可以很方便地进行HTTPGET和POST等各种操作。并且还允许以类似于插件的形式加入一些handler,来定制request和response,比如代理的支持和cookie的支持都是这样添加进来的。具体来说,通过如下方式构造一个opener:opener=urllib2.build_opener(
系统 2019-09-27 17:55:51 2118
数据结构:通俗点说,就是储存大量数据的容器。这里主要介绍Python的4种基本数据结构:列表、字典、元组、集合。格式如下:列表:list=[val1,val2,val3,val4],用中括号;字典:dict={key1:val1,key2:val2},大括号,且每个元素是带有冒号的key与val的对应关系组;元组:tuple=(val1,val2,val3,val4),小括号;集合:set={val1,val2,val3,val4},大括号。1.列表:li
系统 2019-09-27 17:55:33 2118
这几天和几个朋友以各种途径讨论过OOP的相关问题,他们是:令狐虫、Frank、晋剑、小冯大家对OOP有不同看法,所谓工程派和学院派看法不一致。从应用的角度看,工程派的观点是值得推荐的,那就是:不用太在意内部是怎么工作的,只要能够解决眼下的问题即可。但是,对于学习者而言,如果仅仅停留在工程派的层面(特别提醒,上述几位朋友都是工程派的大侠,他们可不是简单地能够使用,其实是更高层次的“无招胜有招”),学习者可能感觉有点不透彻。所以,学习者,特别是初学者,要知道一
系统 2019-09-27 17:55:20 2118