- 博客(83)
- 资源 (1)
- 收藏
- 关注
翻译 python数据结构与算法 15 队列应用之烫手的山芋
为了展示队列的应用,我们模拟一种真实的先进先出的情形。作为开始,我们观察一种儿童游戏,叫烫手的山芋(hotpotato),在这个游戏中(图2),孩子们排成一圈,把手里的东西一个传一个,在某种情形下,停止传递,手上拿着烫手的山芋的人就要被清出来,其他的人继续玩,直接只剩一个人。从现代意义上说,这个游戏等价于著名的约瑟夫问题。据说,一世纪左右,历史学家弗拉维约瑟夫与犹太人一起反抗罗马。
2014-03-18 15:15:50 2673
翻译 python数据结构与算法 14 队列的python实现
队列的python实现在建立抽象数据类型之后,可以建立一个类来实现队列的。和以前一样,我们采用python内置的列表作为工具来建立队列类。队列也是有序的,所以需要决定队列的哪一头作为队列的前端和尾端。在下面的实现代码中,我们约定列表的0位置是队列的尾部,这样的好处是,可以直接使用列表的insert方法在队尾加入数据,使用pop方法在队列的前端(这时是列表的最后一个数据)删除数据。从性能
2014-03-18 07:00:13 2226
翻译 python数据结构与算法 13 队列的抽象数据类型
队列的抽象数据类型队列的抽象数据类型由下面的操作定义。队列是结构化,有序的数据集,前端删除数据,后端加入数据,保持FIFO属性:Queue() 定义一个空队列,无参数,返回值是空队列。enqueue(item) 在队列尾部加入一个数据项,参数是数据项,无返回值。dequeue() 删除队列头部的数据项,不需要参数,返回值是被删除的数据,队列本身有变化。i
2014-03-17 21:36:04 1755
翻译 python数据结构与算法 12队列的概念
什么是队列?队列是有序数据集合,队列的特点,是在头部删除数据项,称为前端,在尾部增加数据项,称为后端。数据项总是在开始的时候排在队伍的后端,慢慢向前走,直到排到最前面,轮到它的时候离开队列。刚进来的排在后端,待在队伍里时间最长的在前端,这种排列规则叫做FIFO,意思是“先进先出”,或者叫做“先来先服务”。最简单的例子就是平时我们的排队,象排队买票看电影,在超市排队付款,在自助餐厅排
2014-03-17 13:26:04 1686
翻译 python数据结构与算法 11 后缀表达式求值
从本节开始,删除原版的英文,直接发译后的文稿。后缀表达式求值栈的最一个应用例子,计算一个后缀表达式的值。这个例子中仍然用栈的数据结构。不过,当扫描表达式的时候,这次是操作数压栈等待,不是转换算法中那样让操作符等待。另一条思路是,无论何时看到输入一个操作符,最近的两个操作数就是操作对象。为了说清楚一点,考虑表达式 4 5 6 * +。从左到右扫描时,首先得到4和5,不过此时,并不
2014-03-16 22:24:02 4499
翻译 python数据结构与算法 10 栈的应用之中缀转后缀表达式算法的实现
General Infix-to-Postfix Conversion中缀转后缀的算法We need todevelop an algorithm to convert any infix expression to a postfix expression.To do this we will look closer at the conversion process.现在我们要开发
2014-03-16 15:24:58 2908 2
翻译 python数据结构与算法 9 中缀后前缀、后缀的转换思路
中缀到前缀和后缀的转换So far, we have used adhoc methods to convert between infix expressions and the equivalentprefix and postfix expression notations. As you might expect, there arealgorithmic ways to perf
2014-03-16 09:21:00 3434 1
翻译 Python数据结构与算法 7栈的应用之进制转换
Converting Decimal Numbers to Binary Numbers栈的应用:进制转换In your study of computer science, you have probably been exposed inone way or another to the idea of a binary number. Binary representation is
2014-03-15 10:35:53 2482
翻译 python数据结构与算法 4栈的实现
Remember thatnothing happens when we click the run button other thanthe definition of the class. We must create a Stack object and thenuse it. ActiveCode2 showsthe Stack class in action aswe per
2014-03-14 12:22:26 2035
翻译 python数据结构与算法 2 栈的概念
Stacks栈What is a Stack? 什么是栈?A stack (sometimescalled a “push-down stack”) is an orderedcollection of items where the addition of new items and the removalof existing items always takes place at
2014-03-14 12:22:21 2320
翻译 python数据结构与算法 1 基本数据结构
Basic Data Structures第1章 基本数据结构Objectives学习目标To understand the abstract data types stack, queue, deque, andlist.To be able to implement the ADTs stack, queue, and deque usingPython lis
2014-03-14 12:22:19 4132
原创 about《Problem solving&nbsp…
这本书今天基本看过一遍,最后几节的实在有点难,所以我决定从第一节重新来过。因为看中文的略读习惯,不知道自己的英文水平,也习惯跳着看,结果看后什么不记得,徒增烦恼。还是学着翻译吧。这是一个开始。序言不翻。从基本数据结构开始。
2014-03-14 12:22:17 1285
原创 pyqt designer生成的界面怎样…
pyqt4带了一个设计器,可以用拖放的方法设计界面。但是这个界面如何与代码结合起来还有点问题。第一步,做界面,生成ui文件第二步,命令行做成.py文件,即pyuic4 -o 输出文件名 输入文件名第三步,写代码如下:import sysfrom PyQt4 import QtGui, QtCorefrom edyto_ui import Ui_notepad #这里导入界面文件
2014-03-14 12:22:15 739
原创 python模块的属性
导入一个模块,有些内置属性是可以查看的,通过以下方法:__file__查看路径,找到这个文件__doc__就是函数名下的说明,估计是""" ***"""里面这一部分,可以print__all__定义了from * import *所导入的模块,就是说,除非这里定义了模块,全部导入也只导入了ALL,其他的需要指定模块名才会导入的。
2014-03-14 12:22:13 1371
原创 构造函数的继承,参数,默认值
自以为对继承是明白的,一写函数还是出错连连。下面的代码是测试用的。测试证明这些过程是必须的。在子类中,构造函数需要声明父类的构造函数,增加这么一句:super(子类名,self).__init__()这样才能把父类的属性引过来。构造函数如果声明了参数,声明对象时,就必须提供参数,而不能建立空对象。当然如果参数表里全有默认值可以不提供,这时建立的对象也不是空对象。构造函数参数只有s
2014-03-14 12:22:10 1728
原创 自定义对象支持print方法
对于内置对象,python都提供了print方法,直接输出元素。自定义对象,一定要提供__str__方法,并且返回一个string对象,才可以支持print方法。binaryHeap的str方法:class BinHeap:def __init__(self):self.heapList = [0]self.currentSize = 0self.current = 0de
2014-03-14 12:22:08 1170
原创 对象如何可叠代输出
所谓对象的可叠代输出,就是想用for c in xx:print(c)做到输出内部元素。这几天学习的是二叉堆,书上没有提供二叉堆形成后的元素输出功能。全部的代码如下,但__iter__和__next__是后加的,目标就是最后的输出实现。我还是想实现直接print(obj),但是方法没找到。后续。__author__ = 'zcl''''最小二叉堆定义:节点key总是小于它的孩子
2014-03-14 12:22:05 635
原创 二分查找的递归方法python
作者提供的代码中是这样做二分查找的:1 def binarySearch(alist, item):2 first = 03 last =len(alist)-14 found = False56 while first<=lastand not found:7 midpoint = (first + last)//28 i
2014-03-14 12:22:03 1559 1
原创 队列与约瑟夫问题
problem solving with algorithm and data structure using python生成队列类的方法:class Queue: def__init__(self): self.items=[] def isEmpty(self): return self.items==[] defenq
2014-03-14 12:21:58 2359
原创 python 算法之栈
今天开始学习problem solving algorithm and datastrurcture bypython,麻省理工的教材,OCW 6.006。一方面补充一下算法知识,复习语法。栈的简单实现class Stack: def__init__(self): self.items=[] def __str__(self): retu
2014-03-14 12:21:56 765
原创 大话数据结构第一个例子的计算比较
收到大话数据结构。在第2 章算法中,高斯算法的比较,用python做了个大数的比较:源码:from time import *n=10000000starttime=clock()sum=0for i in range(1,n+1): sum+=iprint('sum= ',sum)endtime=clock()print('time= ',endtime-start
2014-03-14 12:21:53 747
原创 pylab的环境配置
换了台电脑运行随机走动时,发现缺少太多的扩展包,在家里从没安装过的,怪事了。又安装了这么多文件,其中six,把six.py复制到site-pacakge这个目录下即可。
2014-03-14 12:21:51 609
原创 pylab
pylab模块真的很好用。下面的测试代码,一运行就知道用法了。真的好简单from pylab import *import random##plot([1,2,3,4])####plot([5,6,7,8])##plot([1,2,3,4], [1,4,9,16])####figure()##plot([1,2,3,4], [1,4,9,16], 'ro')##axis([0
2014-03-14 12:21:48 3748
原创 随机走动的模拟
麻省理工的随机走动模块,还不错,三天搞懂了,不过懂得不彻底。记录下修改的代码import math, random, pylabclass Location(object): #位置类 def __init__(self, x,y): #给定坐标,完成初始化 self.x = float(x) self.y = float(y) def
2014-03-14 12:21:46 1149
原创 MIT 背包问题的进一步理解
def maxval(w,v,i,aw): '''决策树求0/1背包最优解见注释部分 w:weight v:value i:物品个数aw:allowable weight背包承受重量''' #print 'call maxval:',i, aw global numcall numcall += 1#本函数被调用的次数 ##迭代的终点:只有一
2014-03-14 12:21:44 513
原创 麻省理工的 背包算法 python
折腾很长时间,这一节题目总算可以总结一下了。题目起源于麻省理工的公开课《计算机科学和编程导论》中的例题,背包问题。原题同想证明动态规划在算法复杂度上的用途。但是题目本身我不太懂,所以程序的思路清理,成为我的障碍(数据结构掌握不好的后果)。感谢以下作者的指导:一块铁疙瘩:http://alorry.blog.163.com/blog/static/6472570820116291024126
2014-03-14 12:21:41 734
原创 反省
我曾开玩笑说,我会六种编程语言……写出'hello world'。但至今没有一门可以混口饭吃。反思自己的学习过程,总是对一门语言兴趣,学语言,然后发现一些程序的思路搞不懂,回头恶补数据结构,又发现仍然看不懂,再恶补离散数学,然后就没有然后了。过几年,再来一遍。所以我学过VB,C,C++,java,python。现在python正在恶补离散数学。嘿嘿。
2014-03-14 12:21:39 487
原创 把数字转为二进制的字串
本来是学背包问题的,无奈数据结构基础不好啊。胡思乱想,引出的问题。怎么把一个整数字,转为二进制的字符串这个当然简单了>>>bin(3)'0b11'但是如果我不想要0b,而且前面补齐0为8位二进制呢?def tobinList(n): s1=['0']*(8-(len(bin(n))-2)) #print('s1= ',s1)把bin的结果去掉0b的长度,前面补0,
2014-03-14 12:21:36 1270
原创 python 把列表转为字串
把列表转为字符串,当然指元素为字串的列表了。例如['zhang','long']>>> s1=['zhang','long']>>> s1=''.join(s1)>>> s1'zhanglong'
2014-03-14 12:21:34 1578
原创 python 合法输入的判断
昨天学习异常,发现如果要求用户输入一个合法的数字并检查的方法。在网上最早找到的方法是:while True: ten=None try: ten=int(input("x:")) except:pass if type(ten)==int:break这是检查是否整数。但是我想,要是一般数字要求的话,整数和浮点数应该都是合法的。所以修
2014-03-14 12:21:32 1126
原创 判断数据类型 python
在贴吧发现一个小技巧,可以方便判断变量类型。import typestype(a)==type(1) #整型type(b)==type('abc')# 字符串type(c)==type('1.20')# 符点怎么样,比之那些标准类型来简单吧
2014-03-14 12:21:29 866 2
原创 python 冒泡排序
在python中作冒泡排序,工作中是蛋疼。当个学习算法吧,谁让咱是新手呢?源码:def bubleSort(L): for i inrange(len(L)-1,0,-1): for j in range(0,i): ifL[j]>L[j+1]: L[j],L[j+1]=L[j+1],L[j]
2014-03-14 12:21:26 566
原创 用正则表达式清除各类符号
一篇文章,先转为单词为元素的列表。分解时遇到的第一个问题,就是如果去除各类标点符号。 import re line='asdf fjdk;;;; s afred,,fjek.asdf, foo^sdkk' re.split(r'[;^,.\s]*',line) #表示后面的字符串没有转义符。【这里面是要作为分隔的各类符号】,外面的*表示重复也算。运算结果,['asdf',
2014-03-14 12:21:23 2410
原创 python deque定长队列
这个中文翻译是自定的,非官方。在cook book 3rd中,介绍了定长队的功能。数据结构是一个列表和列表长度的元组。>>>from collections import deque>>>d=deque(maxlen=5)>>>qdeque([], maxlen=5)>>> q.append(1)>>> q.append(2)>>> q.append(3)>>> q.appe
2014-03-14 12:21:21 4632
原创 python中的三元运算符
python中三元运算:x if y else z即把条件放在中间。>>> x=3 if a>=3 else 2>>> x2>>> a1>>> a=5>>> x=3 if a>=3 else 2>>> x3>>>
2014-03-14 12:21:19 1756
原创 字符串函数,转载
Python内置的字符串处理函数整理发布:mdxy-dxy 字体:[增加 减小] 类型:转载Python内置的字符串处理函数整理,收集常用的Python 内置的各种字符串处理 函数的使用方法str='python Stringfunction'生成字符串变量str='python Stringfunction'字符串长度获取:len(str)例:pr
2014-03-14 12:21:17 707
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人