- 博客(15)
- 资源 (2)
- 收藏
- 关注
原创 C#的时间相关的计算
跟日期时间相关的计算,一般来说有两种:计算时间点,当前的时间加上50min后面是多少; 计算时间段的转化,300000s可以折合成多少个小时;C#的System命名空间里面主要有用的两个实例是:Data Time TimeSpan其中datetime结构用的较多,专门用来处理与时间有关的数据集;timespan计算的是时间间隔;datatime里面的一些方法主要是对日期时间进行...
2018-12-31 10:06:36
982
原创 栈
栈是能够描述和实现的最简单的集合。 栈概述栈是一个线性的集合,其中访问都严格地限制在一端,叫做顶。 栈的一个比喻就是餐馆都能看到的摞起来的干净餐盘,当需要一个餐盘的时候,一般是从餐盘的顶端取走一个,当任何洗干净的餐盘放回餐馆的时候,也放在最上面。没有一个专门的人会从中间特意的抽取一个餐盘,靠近低端餐盘甚至根本就不会用到。栈是遵从后进先出(LIFO)的协议,最后清洗干净并且拿回厨...
2018-08-01 11:18:49
196
原创 继承
程序员复用已有的模型来构建新的模型的方法是利用了面向对象语言的一种叫做继承的特性使用继承来定制一个已有的类 到目前为止,利用继承最直接最容易的方法是使用它来定制一个已经=有的类在理想的情况下,两个类具有相同的接口,因此客户可以使用相同的方式来使用他们,但是两个类又是有区别的,其中的一个可以使得用户完成一些特殊的行为。已经有的类的子类化子类或者超类的UML图是用实线的箭头来指...
2018-08-01 10:09:51
197
原创 UML 包资源 表示
UML是一种表示类图的可视化辅助工具,来对资源进行分类 UML全称是Unified Modeling Language 类图在各个不同的细节层级之间展示了类之间的关系 如果是包和包之间的关系都使用了相同的接口,那么可以表示如下: 包与包之间的关系还有 聚合和组合两种:组合可以看作是整体一部分之间的关系而聚合是一对多的关系。 ...
2018-08-01 09:27:27
208
原创 接口、实现和多态
多态指的是一个资源的多种实现,但是他们都遵从相同的接口或者方法 接口就是简练而且信息丰富的、是的你只需要看一下其公开的、外在的表面就可以掌握资源的一种行为 一个接口并不会反应和显示操作是如何执行其任务的,这个是实现者的工作 开发接口的步骤:定义包接口、指定参数和返回值、构造方法和实现类 先验条件、后验条件、异常和文档先验条件是指只有当先验条件的语句为真时,方...
2018-08-01 09:08:04
695
原创 Pandas 学习 数据 读入 筛选 数据格式 强制转换 排序 实践
导入桌面的csv文件pandas的数据格式一共有两种1、dataframe2、series实际上我的理解是series是特殊的dataframe,所以掌握dataframe实际上是最好的。。。import pandas as pdimport numpy as npdf=pd.read_csv(open('/Users/gaohua/Desktop/gaoli.csv'...
2018-08-01 09:07:28
423
原创 链表数据结构
链表的数据结构是程序中最常用的数据结构,是一个具体的数据类型,实现了很多的类型数据的集合单链表的结构中很容易获的一个项的后继项,不容易获得一个项的前驱项双链表的结构很容易获得一个项的后继项和前驱项因为它是包含了两个方向的链接第二个外部的链接叫做尾部链接,它允许双链表的结构的用户直接访问最后的一项链表的结构反应了项的线性序列,但是使用一个链表结构的程序员无法通过指定的索引位置来立即访问一项,必须从结...
2018-07-16 10:06:00
219
原创 数组数据结构
数组表示的是可以在给定的索引位置上访问或者替代的项的一个序列。实际上,python中的list的的底层数据就是数组,可以在给定的位置上访问或者替代数组的一个项,查看数组的长度,以及获取其字符串表示。python的array模块确实包含类array类,它的行为更像是列表,但是它仅仅限于储存的数字。这里定义一个新的类,遵从前面提到的限制,但是他可以保存任何类型的项。用户的数据操作 Array类中的...
2018-07-16 09:13:55
587
原创 算法探查器的实现
探查是通过统计指令或者执行的时间来度量一个算法的性能的过程,在这个案例的学习过程中,开发一个程序来实现探查的排序算法。需求编写一个程序,允许探查不同的排序算法分析探查器应该允许程序员在数字的列表上运行排序算法,探查器可以记录算法的运行时间、比较的次数、交换的次数。此外当算法交换两个值的时候,探查器可以输出列表的记录。程序员可以给探查器提供自己的数字列表,或者要求探查器自己生成一个给定大小的、随机排...
2018-07-12 21:48:32
211
原创 更快的排序算法
一般的排序方法的复杂度是O(n^2),这里介绍一下复杂度为O(nlogn)的更好的算法。这类算法的好处就是采用了分而治之的策略。也就是说,每一个算法都是找到了一种方法,将列表分解为更小的子列表。随后这些子列表再进行递归排序。理想的情况下,如果这些子列表的复杂度为log(n),而重新排列每一个子列表中的数据所需的工作量为n,那么这样的排序算法总的复杂度就是O(nlogn)。实践证明nlogn要比n^...
2018-07-12 15:57:25
1290
原创 基本的排序算法
基础的排序算法容易的算法效率比较低,但是容易理解。每一个python的排序函数都会使用一个swap的函数来交换列表中的两项的位置,函数的代码如下def swap(lyst,i,j): """交换lyst中的i和j位置的item""" temp=lyst[i] lyst[i]=lyst[j] lyst[j]=temp pass或者python中极具特色的:def swapPython(ly...
2018-07-11 11:08:10
142
原创 数据项的比较 比较算法
比较数据项二叉搜索和搜索最小的项,都是基于列表中的数据是可以相互比较的。也就是说python中的这类数据具有相同的类型。并且他们都是识别运算符 ==、<和>的为了允许算法对一个新对象的类使用比较运算符,就应该在该类中定义__eq__、__lt__和__gt__这样的方法。例如SavingsAccount对象可能包含三个数据字段。一个用于名称,一个用于PIN,还有一个用于余额。假设账户的...
2018-07-10 20:41:49
2241
原创 搜索算法
搜索最小值设计一个简单的找寻最小的算法:该算法首先是将列表中的第一个值作为最小项,然后向右搜索以找到一个更小的值,如果找到了就将最小项的位置设置为当前的位置。当这个算法到达列表的最右端的时候,它就将返回最小项的位置。开发以下的indexOfMin函数:def indexOfMin(lyst): """返回最小项的索引""" minIndex=0 currentIndex=0 while c...
2018-07-10 19:47:51
2437
原创 复杂度分析
复杂度分析也是一种用来评价算法的性能的方法,相比较时间的统计方法(依赖于平台)和指令计数的不切实际,复杂度分析只需要纸和笔来进行简单的代数的计算复杂度的阶算法的分析中,如果一个算法对于任何的问题规模,都需要相同的操作的次数,那么他就是一个常数阶的性能。例子:列表的索引就是典型的常数阶对数阶的性能要比线性阶好一些,但是相比常数阶要差。一个对数阶的算法的工作量和问题的log2成正比,当问题的规模翻倍的...
2018-07-09 22:00:57
506
原创 评估算法的性能
python中的内建的集合类型包括字符串、列表、元组、集合和字典以及字符串其他的重要的集合有栈、队列、优先队列、二叉搜索树、堆、图和包等各种类型的有序组合。CS中的集合被称为抽象数据类型(ADT),按照组织方式的不同可以分为线性集合、层次集合、图集合、无序集合和有序集合。计算机程序 的两个基本的构建模块是数据结构与算法。评估算法的性能的方法:度量算法的运行时间度量算法的运行时间的一种方法是使用计算...
2018-07-09 21:31:02
1619
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人