我是Vamei,一枚大气学博士,却热爱编程。《从Python开始学编程》一书的作者。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 我们讨论过,树的搜索效率与树的深度有关。二叉搜索树的深度可能为n,这种情况下,每次搜索的复杂度为n的量级。
算法和数据结构是计算机科学的核心内容。作为程序员,编程是我们的实战项目。然而,写出程序还不够。一个程序在应对一些大型而复杂的情况时,会耗费大量的时间。我们可以很容易写出一个从文件中找到一个词的程序,比如逐词扫描,看是否相符。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 二叉搜索树的深度与搜索效率 我们在树, 二叉树, 二叉搜索树中提到,一个有n个节点的二叉树,它的最小深度为log(n),最大深度为n。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 堆(heap)又被为优先队列(priority queue)。尽管名为优先队列,但堆并不是队列。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 树的特征和定义 树(Tree)是元素的集合。我们先以比较直观的方式介绍树。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 队列(queue)是一个简单而常见的数据结构。队列也是有序的元素集合。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 栈(stack)是简单的数据结构,但在计算机中使用广泛。它是有序的元素集合。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 表 表(list)是常见的数据结构。从数学上来说,表是一个有序的元素集合。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! Java是完全面向对象的语言。Java通过虚拟机的运行机制,实现“跨平台”的理念。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在许多编程语言中都包含有格式化字符串的功能,比如C和Fortran语言中的格式化输入输出。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 排序算法(Sorting Algorithm)是计算机算法的一个组成部分。 排序的目标是将一组数据 (即一个序列) 重新排列,排列后的数据符合从大到小 (或者从小到大) 的次序。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 我总结了常用的Linux命令,方便你的Linux使用。下面是格式说明,你现在可以跳过,直到遇到疑问时再来查询。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 最近有一则和git有关的新闻很火: 12306的抢票插件拖垮了GitHub (GitHub基于git) git是一款版本控制软件(VCS,Version Control System)。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! TCP协议是一个可靠的协议。它通过重新发送(retransmission)来实现TCP片段传输的可靠性。
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。 在TCP协议与"流"通信中,我们建立了滑窗(sliding window)的基本概念。通过滑窗与ACK的配合,我们一方面实现了TCP传输的可靠性,另一方面也一定程度上提高了效率。
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。 在TCP协议与"流"通信中,我们概念性的讲解了TCP通信的方式。可以看到,TCP通信最重要的特征是:有序(ordering)和可靠(reliable)。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式)。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! Python一切皆对象(object),每个对象都可能有多个属性(attribute)。
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。 TCP(Transportation Control Protocol)协议与IP协议是一同产生的。
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。 我们已经讲解了物理层、连接层和网络层。最开始的连接层协议种类繁多(Ethernet、Wifi、ARP等等)。
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。 到现在为止,我们讲解了网络层中最重要的IP协议(参考协议森林)。IP协议的一个重要补充是是ICMP协议。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 互联网是为了通信,通信又依赖于协议。我们交谈时,要符合语法和用语规范。机器之间的通话也要符合协议。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 这篇文章将介绍如何使用WordPress建立一个博客、网站和论坛。WordPress是基于PHP的博客架设工具。
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。 在粗略了解了IP接力和IP地址后,我们再反过来,看一看IP协议的具体细节和设计哲学。 IPv4与IPv6头部的对比 我们已经在IP接力中介绍过,一个IP包分为头部(header)和数据(payload/data)两部分。
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。 谢谢xwpcom纠错 IP地址是IP协议的重要组成部分,它可以识别接入互联网中的任意一台设备。
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。 网络层(network layer)是实现互联网的最重要的一层。正是在网络层面上,各个局域网根据IP协议相互连接,最终构成覆盖全球的Internet。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在博客园写博的半年中,我有时会纠结于一些诸如写作格式和显示效果之类的小问题。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 信号(singal)简介 我们在生活中经常遇到信号。比如说,股票的走势图,心跳的脉冲图等等。
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。 信号的传输总要符合一定的协议(protocol)。比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 上下文管理器(context manager)是Python2.5开始支持的一种语法,用于规定某个对象的使用范围。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。 Python一切皆对象,但同时,Python还是一个多范式语言(multi-paradigm),你不仅可以使用面向对象的方式来编写程序,还可以用面向过程的方式来编写相同功能的程序(还有函数式、声明式等,我们暂不深入)。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。 Python内置(built-in)函数随着python解释器的运行而创建。在Python的程序中,你可以随时调用这些函数,不需要定义。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 飓风"桑迪" (Sandy)横扫美国东部,并在纽约附近登录,带走113条人命,并造成500亿美元的损失,桑迪也被列为美国历史上最昂贵的飓风。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在这里列举一些我使用Python时积累的小技巧。这些技巧是我在使用Python过程中经常使用的。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 之前我的Python教程中有人留言,表示只学Python没有用,必须学会一个框架(比如Django和web.py)才能找到工作。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 我们已经在Python运算中看到Python最基本的数学运算功能。此外,math包补充了更多的函数。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在初步了解Python多进程之后,我们可以继续探索multiprocessing包中更加高级的工具。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 我们已经见过了使用subprocess包来创建子进程,但这个包有两个很大的局限性:1) 我们总是让subprocess运行外部的程序,而不是运行一个Python脚本内部编写的函数。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 我们在Linux的概念与体系,多次提及进程的重要性。Python的os包中有查询和修改进程信息的函数。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! Python主要通过标准库中的threading包来实现多线程。在当今网络时代,每个服务器都会接收到大量的请求。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 哪里来的树莓派 01. 树莓派:一个关于教育的故事 02. 树莓派心脏:ARM的逆袭 03. 树莓派的大脑:Linux 体验树莓派 Linux是使用最广泛的开源操作系统,而树莓派是新兴的开放硬件平台。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 我们在Linux信号基础中已经说明,信号可以看作一种粗糙的进程间通信(IPC, interprocess communication)的方式,用以向进程封闭的内存空间传递信息。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 计算机如何执行进程呢?这是计算机运行的核心问题。即使已经编写好程序,但程序是死的。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! Linux的用户在登录(login)之后,就带有一个用户身份(user ID, UID)和一个组身份(group ID, GID)。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! Linux的进程相互之间有一定的关系。比如说,在Linux进程基础中,我们看到,每个进程都有父进程,而所有的进程以init进程为根,形成一个树状结构。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 在了解了Linux的信号基础之后,Python标准库中的signal包就很容易学习和理解。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! Linux进程基础一文中已经提到,Linux以进程为单位来执行程序。我们可以将计算机看作一个大楼,内核(kernel)是大楼的管理员,进程是大楼的房客。
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 谢谢Tolbkni Kao帮我纠正错误 这里的内容以Linux进程基础和Linux文本流为基础。