ADT Rational: #定义有理数的抽象数据类型 Rational(self, int num, int den) #构造有理数num/den +(self, Rational r2) #求出本对象加r2的结果 -(self, Rational r2) #求出本对象减r2的结果 *(self, Rational r2) #求出本对象乘以r2的结果 /(self, Rational r2) #求出本对象除以r2的结果 num(self) #取出本对象的分子 den(self) #取出本对象的…
算法 算法(algorithm)是为求解一个问题需要遵循的.被清楚地指定的简单指令的集合. 数学基础 四个定义: 1.大O表示法: 如果存在正常数 c 和 n0 使得当 N ≥ n0时,T(N) ≤ cf(N),则记为T(N) = O(f(N)). (描述了T(N)的相对增长率小于等于f(N)的相对增长率.) 2.大Ω表示法: 如果存在正常数 c 和 n0 使得当 N ≥ n0时,T(N) ≥ cf(N),则记为T(N) = Ω(f(N)). (描述了T(N)的相对增长率大于等于f(N)的相对增…
运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运用Python语言编写获取Linux基本系统信息(二):文件系统使用情况获取 一.实验环境: Python2.7.10.pycharm.VM虚拟机.CentOS6.3.mysql 二.MySQLdb模块: MySQLdb模式是Python中专门连接MySQL数据库的模块,另外Python开发环境的搭…
检索算法-如何在列表中查找特定的值. 顺序查找 从列表的第一个元素开始对列表元素逐个进行判断,直到找到了想要的结果,它属于暴力查找技巧的一种,在执行查找时可能会访问到数据结构里的所有元素. 代码: //版本1 function seqSearch1(arr,data){ //顺序查找 //就是循环查找 挨着一个一个查找 //v1 返回布尔值 for (var i = 0; i < arr.length; ++i) { if (arr[i] == data) { return true; } }…
排序是常见的功能,给定一组数据,对其进行排序. 在此之前,我们需要准备个基础工作--自动生成数组,并可以对该组数据做任何处理. /** * 测试类 ,数组 * @param numElements * @constructor */ function CArray(numElements){ var me = this; me.dataStore = []; me.pos = 0; me.numElements = numElements; me.insert = insert; me.toSt…
这一章主要复习了一些数学知识,像指数.对数.模运算.级数公式:还有2种证明方法,归纳假设法和反证法.所幸以前学过,重新拾捡起来也比较轻松. 简要地复习了递归,提出了编写递归例程的四条基本法则: 基准情形.必须总有些基准情形.它无需递归就能解出. 不断推进.对于那些需要递归求解的情形,每一次递归调用都必须要使求解状况朝接近基准情形的方向推进. 设计法则.假设所有的递归调用都能运行. 合成效益法则.在求解一个问题的同一实例时,切勿在不同的递归调用中做重复性的工作.(譬如斐波那契数列的递归使用 Fib…
PS:PDF在线地址:http://bcmi.sjtu.edu.cn/~zhaohai/ptm2012/data/Python-kernel.programming.v2.pdf 2-1  变量,print 和字符串格式化运算符.启动交互式解释器,给一些变量赋值(字符串,数值等等)并通过输入变量名显示它们的值.再用 print 语句做同样的事.这二者有何区别? 也尝试着使用字符串格式运算符%,多做几次,慢慢熟悉. # -*- coding:utf-8 -*- >>>a = 123 >…
字典 字典是一种以键-值对形式存储数据的数据结构 最基本功能规划 add 添加数据到字典 remove 从字典中移除数据 get 从字典中取出数据 count 统计字典数据量 find 查找数据在字典中位置 show 显示字典数据 /** * 字典 * @constructor */ function Dictionary(){ var me = this; me.dataStore = []; me.add = add; me.find = find; me.remove = remove;…
链表 链表是由一组节点组成的集合.每个节点都使用一个对象的引用指向它的后继.指向另一个节点的引用叫做链 结构示意图 : 链表头需要我们标识 head { element:head,next:obj1 } ==> { element:obj1,next:obj2 } ==> { element:obj2,next:obj3 } ==> { element:obj3,next:null } ==> null head 是我们内部标识,我们默认不显示给用户这个数据,只用于内部使用. 即用…
队列也是列表的一种,有不同于列表的规则. 先进先出 入队方法 出队方法 可以找到队首 可以找到队尾 可以查看队列有多长 可以查看队列是否为空 这是一个基本的需求,围绕他来实现,当然我们可以自己扩展列表的规则并辅以代码实现 queue.js /** * 队列,先进先出 First-In-First-Out * 入队 出队 * @constructor */ function Queue(){ this.dataStore=[]; this.count = length; this.clear =…