03 2014 档案

摘要:怎么记忆稳定性:总过四大类排序:插入、选择、交换、归并(基数排序暂且不算)比较高级一点的(时间复杂度低一点得)shell排序,堆排序,快速排序(除了归并排序)都是不稳定的,在加上低一级的选择排序是不稳定的。比较低级一点的(时间复杂度高一点的)插入排序, 冒泡排序,归并排序,基数排序都是稳定的。 阅读全文
posted @ 2014-03-29 14:40 曹守鑫 阅读(161) 评论(0) 推荐(0)
摘要:help()一:不同的环境下1.交互模式下(命令行) 查看模块的帮助信息:[python]view plaincopyprint?importpicklehelp(pickle)可以看到详细信息,--More--上回车,滚动信息。q 退出帮助2.ide里,需要做一个输出。[python]view plaincopyprint?importpickleprint(help(pickle))二:查看不同属性的帮助信息的方法1.模块和内建函数help(模块名/内建函数名)2.模块中的函数[python]view plaincopyprint?import模块help(模块.方法名)dir()1.列出 阅读全文
posted @ 2014-03-26 10:21 曹守鑫 阅读(358) 评论(0) 推荐(0)
摘要:df命令用来查看系统的space和inode使用情况,也是常用命令之一-a 显示所有的文件系统,包括本地的和挂载的网络文件系统-h 显示大小的时候,以人性化的方式来显示,以更适合的方式来显示-T 现实文件系统类型-t 显示指定的文件系统-l 只显示本地文件系统-k 以KB为单位显示-x 不显示指定的文件系统-i 显示inode使用情况 阅读全文
posted @ 2014-03-26 09:19 曹守鑫 阅读(5224) 评论(0) 推荐(0)
摘要:为什么mysql的存储引擎MyISam比InnoDB查询速度快myisam只有索引缓存innodb不分索引文件数据文件 innodb buffermyisam只能管理索引,在索引数据大于分配的资源时,会由操作系统来cache;数据文件依赖于操作系统的cache。innodb不管是索引还是数据,都是自... 阅读全文
posted @ 2014-03-25 20:17 曹守鑫 阅读(307) 评论(0) 推荐(0)
摘要:实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别:其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字;同 阅读全文
posted @ 2014-03-25 20:15 曹守鑫 阅读(137) 评论(0) 推荐(0)
摘要:Pearson(皮尔逊)相关系数在论文中,结果的对比,常常用到皮尔逊相关系数,以检查结果的提高程度!注意:N表示共同的项数,而不是下标1、简介皮尔逊相关也称为积差相关(或积矩相关)是英国统计学家皮尔逊于20世纪提出的一种计算直线相关的方法。假设有两个变量X、Y,那么两变量间的皮尔逊相关系数可通过以下公式计算:公式一:公式二:公式三:公式四:以上列出的四个公式等价,其中E是数学期望,cov表示协方差,N表示变量取值的个数。2、适用范围当两个变量的标准差都不为零时,相关系数才有定义,皮尔逊相关系数适用于:(1)、两个变量之间是线性关系,都是连续数据。(2)、两个变量的总体是正态分布,或接近正态的单 阅读全文
posted @ 2014-03-24 09:41 曹守鑫 阅读(795) 评论(0) 推荐(0)
摘要:进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做 阅读全文
posted @ 2014-03-22 10:15 曹守鑫 阅读(122) 评论(0) 推荐(0)
摘要:内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。内存泄漏形象的比喻是“操作系统可提供给所有进程的存储空间正在被某个进程榨干”,最终结果是程序运行时间越长,占用存储空间越来越多,最终用尽全部存储空间,整个系统崩溃。所以“内存泄漏”是从操作系统的角度来看的。这里的存储空间并不是指物理内存,而是指虚拟内存大小,这个虚拟内存大小取决于磁盘交换区的设定的大小由程序申请的一块内存,且没有任何一个指针指向它,那么这块内存就泄露了。以发生的方式来分类,内存泄漏可以分为4类: 阅读全文
posted @ 2014-03-22 10:10 曹守鑫 阅读(212) 评论(0) 推荐(0)
摘要:题目:从扑克牌中随机的选5张牌,大小王可以表示任何数,验证五张牌是否为顺子package com.bupt.acm;import java.util.Arrays;import java.util.Scanner;/** * 扑克牌的顺子 * @author dell * */public class Main24 { public static void main(String[] args){ Scanner scanner=new Scanner(System.in); int n=5; int[] numb=new int[n]; ... 阅读全文
posted @ 2014-03-21 11:17 曹守鑫 阅读(148) 评论(0) 推荐(0)
摘要:题目:一个整型数组里除了两个数字外,其他的数字都出现了两次,请写一个程序找出只出现一次的数字,要求时间复杂度O(n),空间复杂度O(1)算法:首先对所有数字取异或,找到结果中有一位不为0的位置,然后,对所有元素分组,分为两个部分;然后对每个部分分别取异或import java.util.*;public class Main21 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n; int[] numb; ... 阅读全文
posted @ 2014-03-20 10:00 曹守鑫 阅读(176) 评论(0) 推荐(0)
摘要:缓存淘汰算法系列之1——LRU类1.LRU1.1.原理LRU(Leastrecentlyused,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。1.2.实现最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:1.新数据插入到链表头部;2.每当缓存命中(即缓存数据被访问),则将数据移到链表头部;3.当链表满的时候,将链表尾部的数据丢弃。Cache替换算法是影响代理缓存系统性能的一个重要因素,一个好的Cache替换算法可以产生较高的命中率。目前已经提出的算法可以划分为以下三类:(1)传统替换算法及其直接演化,其代表算 阅读全文
posted @ 2014-03-19 14:10 曹守鑫 阅读(213) 评论(0) 推荐(0)
摘要:Java内存机制Java内存分为若干个区域:程序计数器,Java虚拟机栈(存储临时变量表,操作数栈,动态链接,方法入口),对应着栈的出栈入栈过程,本地方法栈(调用本地方法),Java堆(内存最大的一块,所有线程共享的区域,在虚拟机启动时创建,此内存区的唯一目的是存放对象实例,包括数组,Java堆是垃圾管理器管理的的主要区域,分为新生代,老年代,永生代)、方法区(跟Java堆一样,也是所有线程共享的区域,用来加载类信息,常量、静态变量、及时编译的代码数据,也是垃圾搜集器同一管理)、运行时常量池(用于存放编译期生成的各种字面常量和符号引用,Java并不要求所有常量在编译期才产生,例如字符串);程序 阅读全文
posted @ 2014-03-18 18:40 曹守鑫 阅读(238) 评论(0) 推荐(0)
摘要:但为什么一个方法前不能同时加abstract与static呢?static是静态,就是在编译时已经确定的东西,当然不能是抽象(动态)的,那是运行时才能确定的东西一,抽象类:abstract 1,只要有一个或一个以上抽象方法的类,必须用abstract声明为抽象类; 2,抽象类中可以有具体的实现方法; 3,抽象类中可以没有抽象方法; 4,抽象类中的抽象方法必须被它的子类实现,如果子类没有实现,则该子类继续为抽象类 5,抽象类不能被实例化,但可以由抽象父类指向的子类实例来调用抽象父类中的具体实现方法;通常作为一种默认行为; 6,要使用抽象类中的方法,必须有一个子类继承于这个抽象类,并实现抽象类中的 阅读全文
posted @ 2014-03-18 13:45 曹守鑫 阅读(385) 评论(1) 推荐(1)
摘要:HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别。1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。2.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。3.HashTable有一个contains(Objectvalue),功能和containsV 阅读全文
posted @ 2014-03-18 10:15 曹守鑫 阅读(172) 评论(0) 推荐(0)
摘要:简单点说1.copy.copy浅拷贝只拷贝父对象,不会拷贝对象的内部的子对象。2.copy.deepcopy深拷贝拷贝对象及其子对象用一个简单的例子说明如下:>>>importcopy>>>a=[1,2,3,4,['a','b','c']]>>>b=a>>>c=copy.copy(a)>>>d=copy.deepcopy(a)很容易理解:a是一个列表,表内元素a[4]也是一个列表(也就是一个内部子对象);b是对a列表的又一个引用,所以a、b是完全相同的,可以 阅读全文
posted @ 2014-03-14 18:15 曹守鑫 阅读(629) 评论(1) 推荐(1)
摘要:给用户推荐没有买过的项目物品描述文件(或用户)之间的关系,并且利用这些信息改善进入的项目与描述文件(或用户)间匹配的过滤技术,成为协同过滤技术。协同过滤通常是推荐系统的组成部分之一。推荐系统利用协同过滤算法推荐项目(如书籍或电影)。许多主要的商业站点,如Amazon.com和Netflix,都充分利用推荐系统为用户提供推荐的产品列表,以期望用户能够看到他可能喜欢尚未了解的产品。对终端用户和搜索引擎都非常有价值协同过滤算法分析:1. 根据协同过滤算法的分析,可以划分为:基于用户相似度和基于条目相似度的推荐系统方法2. 基于用户相似度的推荐算法介绍: 1》获取用户评分,建立矩阵,将没有评分的项目. 阅读全文
posted @ 2014-03-14 15:34 曹守鑫 阅读(535) 评论(0) 推荐(0)
摘要:推荐算法1. 基于内容的推荐基于内容的信息推荐方法的理论依据主要来自于信息检索和信息过滤,所谓的基于内容的推荐方法就是根据用户过去的浏览记录来向用户推荐用户没有接触过的推荐项。主要是从两个方法来描述基于内容的推荐方法:启发式的方法和基于模型的方法。启发式的方法就是用户凭借经验来定义相关的计算公式,然后再根据公式的计算结果和实际的结果进行验证,然后再不断修改公式以达到最终目的。而对于模型的方法就是根据以往的数据作为数据集,然后根据这个数据集来学习出一个模型。一般的推荐系统中运用到的启发式的方法就是使用tf-idf的方法来计算,跟还有tf-idf的方法计算出这个文档中出现权重比较高的关键字作为描述 阅读全文
posted @ 2014-03-14 10:51 曹守鑫 阅读(3779) 评论(0) 推荐(0)
摘要:import java.util.Scanner;/** * 把数组排成最小的数[3 32 321],结果:321323;最小;注意,要考虑大数问题 * 主要是排序问题 * @author dell * */public class Main15 { public static void main(String[] args){ Scanner scanner=new Scanner(System.in); Main15 main15=new Main15(); int n; String[] numb; System... 阅读全文
posted @ 2014-03-13 16:48 曹守鑫 阅读(245) 评论(0) 推荐(0)
摘要:通知我21早上9:30开始,早上8:40就到了,前台上面没有我名单,我就打电话询问HR,说没关系,面试官在路上,等一下,大概到10点左右,HR领我进去见面试官,解释说昨晚从杭州来北京,有点晚,让你久等了,我说没事。面试官个子很高的样子,有点零星白头发,器宇不凡,一看就是个级别很高。进来问好,然后让我坐下面试官说:我们是1688技术部的面试,现在就开始吧。01. 介绍一下你技术方面刚开始有点紧张,说的有点断断续续,中间还有HR MM进来,另外一个mm进来给面试官端水02. 性能优化方面我理解为代码层面的我:一是:HTML层次结构不要太深,层次结构深会xx...二是:防止内存泄露,DOM和java 阅读全文
posted @ 2014-03-10 15:48 曹守鑫 阅读(312) 评论(0) 推荐(0)
摘要:******** 【面向对象部分】********* ------抽象:private、protected、public、缺省,缺省问到的最多,缺省是对本包可见。------继承:JAVA单继承自Object类,JAVA怎么实现多继承(接口)。------多态:非常重要,问的最多,一定要搞清楚。********* 【J2SE部分】********* ------包lang:1、基础包装类,如Integer2、Object类,包括equals、hashcode、toString、clone3、JAVA GC,内存管理4、String和StringBuffer的区别,主要是看内存的存储结构5、多. 阅读全文
posted @ 2014-03-10 15:47 曹守鑫 阅读(600) 评论(0) 推荐(0)
摘要:1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)2.jsp更擅长表现于页面显示,servlet更擅长于逻辑控制.3.Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到.Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,Jsp中的Java脚本如何镶嵌到一个类中,由Jsp容器完成。而Servlet则是个完 阅读全文
posted @ 2014-03-10 15:41 曹守鑫 阅读(1449) 评论(0) 推荐(0)
摘要:Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内存泄露,但它的表现与C++不同。Java是如何管理内存为了判断Java中是否有内存泄露,我们首先必须了解Java是如何管理内存的。Java的内存管理就是对象的分配和释放问题。在Java中,程序员需要通过关键字new为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。另 阅读全文
posted @ 2014-03-10 15:28 曹守鑫 阅读(236) 评论(0) 推荐(0)
摘要:转载:http://www.cnblogs.com/wannianma/archive/2011/04/03/A00000011.html1.简单的说:Java把内存划分成两种:一种是栈内存,一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的 阅读全文
posted @ 2014-03-10 14:39 曹守鑫 阅读(1803) 评论(0) 推荐(0)
摘要:在实现PageRank算法中犯了两个错误,1:在对double类型赋值时,除法中没有将分母设置为double类型,而是int类型,导致出现商为0的结果错误,导致推迟2:当定义两个数组时,对数组赋值时,忘记了,数组是对象的特点直接nowRank=resultRank;其中resultRank又重新赋值,所以导致nowRank中元素值也发生变化,因为数组是对象,赋值意味着指向了同一个对象代码:public class TestDouble { public static void main(String[] args) { int count=2; double ... 阅读全文
posted @ 2014-03-07 17:08 曹守鑫 阅读(1161) 评论(0) 推荐(0)
摘要:1.编程之美中发帖问题如何在O(n)时间内找到发帖过半的人,或者在一个数组中找到数量过半的元素例如:4 4 1 2 4 3 4过半元素为4;该算法必须在保证有过半元素的情况下,才能找到所需元素;否者。。。import java.util.Scanner;/** * 查找数组中数量过半的元素 * @author dell * */public class Main10 { private boolean flag=true; private int findHalfMaxValue(int[] numb){ int length=numb.length; ... 阅读全文
posted @ 2014-03-06 15:47 曹守鑫 阅读(854) 评论(0) 推荐(0)
摘要:转载:http://blog.csdn.net/hguisu/article/details/8013489HITS算法是链接分析中非常基础且重要的算法,目前已被Teoma搜索引擎(www.teoma.com)作为链接分析算法在实际中使用。Hub页面(枢纽页面)和Authority页面(权威页面)是HITS算法最基本的两个定义。所谓“Authority”页面,是指与某个领域或者某个话题相关的高质量网页,比如搜索引擎领域,Google和百度首页即该领域的高质量网页,比如视频领域,优酷和土豆首页即该领域的高质量网页。所谓“Hub”页面,指的是包含了很多指向高质量“Authority”页面链接的网页 阅读全文
posted @ 2014-03-06 15:07 曹守鑫 阅读(2332) 评论(0) 推荐(0)
摘要:参考:http://blog.codinglabs.org/articles/intro-to-pagerank.html当然,实际上现在的搜索引擎都是有分词机制的,例如如果以“张洋的博客”为关键词,搜索引擎会自动将其分解为“张洋 的 博客”三个词,而“的”作为停止词(Stop Word)会被过滤掉... 阅读全文
posted @ 2014-03-06 14:41 曹守鑫 阅读(5296) 评论(0) 推荐(0)
摘要:题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵:12345678910111213141516则依次打印出数字1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10。分析:由于是从外圈到内圈的顺序依次打印,我们可以把矩阵想像成若干个圈,我们可以用一个循环来打印一个矩阵中的圈,每次打印一个圈接下来考虑循环终止的条件,假设这个矩阵的行数为rows,列数为columns,打印第一圈左上角的元素坐标为(0,0)第二圈的左上角元素为(1,1)以此类推,我们注意到,左上角的坐标中行标和列标都是相同的,于是可以选 阅读全文
posted @ 2014-03-01 21:24 曹守鑫 阅读(285) 评论(0) 推荐(0)

点击右上角即可分享
微信分享提示