`
zhaohuafei
  • 浏览: 27041 次
文章分类
社区版块
存档分类
最新评论
文章列表
package cn.zhf.test; import java.io.*; import java.util.*; public class SpamMailDetection { public static final String BASE_PATH = "C:\\Users\\zhf\\Desktop\\mail"; public static final String SPAM_PATH = BASE_PATH + "\\train_illegal.txt";//垃圾邮件语料 public static final S ...
优先级队列是一个抽象数据类型,它提供删除插入、最大(最小)关键字值数据项的方法,其主要目的是对极值提供便利的访问。 优先级队列可以用有序数组来实现,也可以用队列来实现。 堆,是一种树,由其实现优先级队列的插入删除操作的时间复杂度都是O(logN)。 堆是有如下特点的二叉树: 1.是完全二叉树。即,除了树的最后一层节点不是满的,其他的每一层都必须是满的。 2.堆中的每一个节点都满足堆的条件,即每一个节点的关键字的值都大于或等于其子节点的关键字的值,而小于父节点关键字的值。 3.最大数据项总是在根位置上。 4.一般用数组实现。 5.堆不能有序地遍历所有数据,不能找到特定关键字 ...
优先级队列是一个抽象数据类型,它提供删除插入、最大(最小)关键字值数据项的方法,其主要目的是对极值提供便利的访问。 优先级队列可以用有序数组来实现,也可以用队列来实现。 堆,是一种树,由其实现优先级队列的插入删除操作的时间复杂度都是O(logN)。 堆是有如下特点的二叉树: 1.是完全二叉树。即,除了树的最后一层节点不是满的,其他的每一层都必须是满的。 2.堆中的每一个节点都满足堆的条件,即每一个节点的关键字的值都大于或等于其子节点的关键字的值,而小于父节点关键字的值。 3.最大数据项总是在根位置上。 4.一般用数组实现。 5.堆不能有序地遍历所有数据,不能找到特定关键字 ...
哈希表是一种数据结构,提供快速的插入和查找功能。哈希表基于数组存储数据,因此能在O(1)时间内定位数据。关键字值通过哈希函数映射为数组下标。缺点就是数组创建后容量固定,如果数据较多需要不断扩展其长度。如何将 ...
哈希表是一种数据结构,提供快速的插入和查找功能。哈希表基于数组存储数据,因此能在O(1)时间内定位数据。关键字值通过哈希函数映射为数组下标。缺点就是数组创建后容量固定,如果数据较多需要不断扩展其长度。如何将 ...
树由边连接的节点构成。节点一般代表实体数据,如代表某一类数据。windows文件系统就可以看成是一棵树,比如C盘下有一些文件夹,这些文件夹下面又分别有一些文件夹,这样的关系其实就是一棵树。根:树顶端的节点称为树的根,一棵树只有一个根。父节点:每一个节点(除了根)都有一条边向上连接到另一个节点,上面的这个节点就称为下面节点的父节点。子节点:与父节点相反。子树:每个节点都可以作为子树的根,它和它所有的子节点,还有子节点的子节点都在子树中。
树由边连接的节点构成。节点一般代表实体数据,如代表某一类数据。windows文件系统就可以看成是一棵树,比如C盘下有一些文件夹,这些文件夹下面又分别有一些文件夹,这样的关系其实就是一棵树。根:树顶端的节点称为树的根,一棵树只有一个根。父节点:每一个节点(除了根)都有一条边向上连接到另一个节点,上面的这个节点就称为下面节点的父节点。子节点:与父节点相反。子树:每个节点都可以作为子树的根,它和它所有的子节点,还有子节点的子节点都在子树中。
单链表只能从前往后遍历,如果链表的长度较大,遍历到链表后半部分的时候想要往前查找,就只能回到开头,重新遍历了。 双向链表提供了这个能力,即允许前向遍历,也允许后向遍历整个链表。原因是双向链表的每个节点都有两个指向其他节点的引用。但这也是其缺点,因为在插入、删除的时候需要处理四个链接点的引用, 占用的空间也大了一些。如将头节点和尾节点链接起来,即成为双向循环链表。 下面是java代码: package test; public class DoubleLink { public Link first; public Link last; public D ...
单链表只能从前往后遍历,如果链表的长度较大,遍历到链表后半部分的时候想要往前查找,就只能回到开头,重新遍历了。 双向链表提供了这个能力,即允许前向遍历,也允许后向遍历整个链表。原因是双向链表的每个节点都有两个指向其他节点的引用。但这也是其缺点,因为在插入、删除的时候需要处理四个链接点的引用, 占用的空间也大了一些。如将头节点和尾节点链接起来,即成为双向循环链表。 下面是java代码: package test; public class DoubleLink { public Link first; public Link last; public D ...
在ubuntu系统上安装了jdk,环境变量在/etc/profile这里配置了,但是配置的有点小问题,当时java -version没有问题,只有等到下次开机的时候才会出现问题,就是一直登录不了,输入正确的密码还是会跳回登录页面,此时可以按ctrl+alt+F2进入命令模式: $:/usr/bin/sudo /usr/bin/vi /etc/profile 进入vi编辑器编辑环境变量,成功后保存退出重启即可。
在ubuntu系统上安装了jdk,环境变量在/etc/profile这里配置了,但是配置的有点小问题,当时java -version没有问题,只有等到下次开机的时候才会出现问题,就是一直登录不了,输入正确的密码还是会跳回登录页面,此时可以按ctrl+alt+F2进入命令模式: $:/usr/bin/sudo /usr/bin/vi /etc/profile 进入vi编辑器编辑环境变量,成功后保存退出重启即可。
抽象的一般定义:从众多的事物中抽取出一般的、本质性的特征,而舍弃其非本质的特征。抽象是哲学的根本特点,抽象不能脱离具体而独自存在。可以这样想:抽象就是看不见摸不着的本质的东西。在程序设计中说到数据类型,我们会想到基本数据类型如int,double等,不同的类型有不同的定义、操作。面向对象允许我们创建自己的数据类型,比如创建一个Person类,这个类可以拥有人的一些特征,比如身高,体重,性别,国籍等。最初我对数据类型的理解是数值量,但是实际上,数据类型也适用于没有量化的类,如Person,Link这样的类。 抽象数据类型(Abstract Data Type),需要通过固有数据类型(如基本数据类 ...
抽象的一般定义:从众多的事物中抽取出一般的、本质性的特征,而舍弃其非本质的特征。抽象是哲学的根本特点,抽象不能脱离具体而独自存在。可以这样想:抽象就是看不见摸不着的本质的东西。在程序设计中说到数据类型,我们会想到基本数据类型如int,double等,不同的类型有不同的定义、操作。面向对象允许我们创建自己的数据类型,比如创建一个Person类,这个类可以拥有人的一些特征,比如身高,体重,性别,国籍等。最初我对数据类型的理解是数值量,但是实际上,数据类型也适用于没有量化的类,如Person,Link这样的类。 抽象数据类型(Abstract Data Type),需要通过固有数据类型(如基本数据类 ...
链表:一种离散存储数据的方式,每一个数据块包含一个数据和对下一个数据的引用,首结点无前驱,末结点无后继。链表不按顺序存储,所以插入和删除操作效率很高(O(1)),仅需要改变一两个引用值,不需要移动和复制数据,但是查找效率很低,因为要遍历整个链表。链表是一种自我指示数据类型,因为它包含指向另一个相同类型的数据的指针(链接)。使用链表存储数据的另一个优点就是需要多少内存就有多少,而数组的大小在创建时就固定了。值得一提的是向量,是一种可扩展的数组,它可通过可变长度解决这个问题,但是其一般只允许国定大小的增长(比如,一半),但是效率仍要比链表低。链表有很多种不同的类型:单向链表,双向链表以及循环链表。链 ...
链表:一种离散存储数据的方式,每一个数据块包含一个数据和对下一个数据的引用,首结点无前驱,末结点无后继。链表不按顺序存储,所以插入和删除操作效率很高(O(1)),仅需要改变一两个引用值,不需要移动和复制数据,但是查找效率很低,因为要遍历整个链表。链表是一种自我指示数据类型,因为它包含指向另一个相同类型的数据的指针(链接)。使用链表存储数据的另一个优点就是需要多少内存就有多少,而数组的大小在创建时就固定了。值得一提的是向量,是一种可扩展的数组,它可通过可变长度解决这个问题,但是其一般只允许国定大小的增长(比如,一半),但是效率仍要比链表低。链表有很多种不同的类型:单向链表,双向链表以及循环链表。链 ...
Global site tag (gtag.js) - Google Analytics