`
周凡杨
  • 浏览: 235830 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
一:概念 二分查找又称折半查找(折半搜索/二分搜索),优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而 查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表 分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录, 使查找成功,或直到子表不存在为止,此时查找不成功。   二:原理 二分查找的基本思想是:(设R[low..high]是当前 ...
一:概念   插入排序(英文为Insertion sort ):  插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。   二:原理   一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:   ·         从第一个元素开始,该元素可以认为已经被排序  
  一:概念   堆排序(英文为Heap sort ):  是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。   引文: ----------------------------------------------------------------------------------------------------------------------    二叉树: 每个节点最多有两个子树的树结构。通常子树被称作
               一:概念 归并排序(英文为Merge sort ):  归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。   -------------------------------------------------- ...
在上一篇《解读Servlet原理篇一》中提到,要实现javax.servlet.Servlet接口(即写自己的Servlet应用),你可以写一个继承自javax.servlet.GenericServletr的generic Servlet ,也可以写一个继承自java.servlet.http.HttpServlet的HTTP Servlet(这就是为什么我们自定义的Servlet通常是extentds HttpServlet的)。   那GenericServlet和HttpServlet的区别是什么,如何使用这两个类呢?   一:大话GenericServlet Serv ...
我相信码农中大部分人都是先学习会用Servlet,后研究Servlet的原理或Servlet的源码的,我就是这样的。那首先就从一个简单的Servlet例子讲起吧!   一:Servlet前奏   第一步,定义一个Servlet类:ServletTest.java package cn.com.servlet; i ...
一:JAVA中的线程     在java中线程的应用类主要在下面两个包中: java.lang java.util. concurrent 下图体现的是Java中最基础的线程类的关系拓扑图:      来看看java.lang.Runnable接口的源码:   package java.lang; public interface Runnable { /** * When an object implementing interface <code>Runnable</code> is used * to cr ...
一:线程 线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。线程是独立调度和分派的基本单位。线程可以操作系统内核调度的内核线程,如Win32线程;由用户进程自行调度的用户线程,如Linux Portable Thread;或者由内 ...
                          在《JAVA深入浅出流之一IO流》中,介绍了流安读取方式分字节流和字符流,那什么是字节流呢? 字节流的应用范围是什么?或者说什么时候用字节流?   本篇主要介绍字节流,其实如果研究字节流的类谱,它也算是个庞大家族,万事开头难,但故事总是从头说起,这里的“头”就是字节流的超类。   一:字节流(byte stream)     字节流是执行基于8位字节的输入和输出,它一次读写一字节的数据。字节流是I / O的最底层流技术,因此,如果你正在阅读或写入字符数据的最佳方法是使用字符流。其他流类型是建立在字节流之上的(如Java中的Inp ...
工作三年了,可自己对文件读写还是一知半解,写代码的时候都不知道从何下手(其实也可以说是从哪个类下手),什么时候用FileInputStream,什么时候用BufferedInputStream,什么时候用缓冲机制?输入输出流都底是什么东东?为什么要用流呢?   带着种种问题,我开始了JAVA深入浅出流之篇的总结。   Program often need to communicate with the outside world. The means of communication are input(such as a keyboard)and output(such as th ...
    Annotation: 译为注释或注解 An annotation, in the Java computer programming language, is a form of syntactic metadata that can be added to Java source code. Classes, methods, variables, parameters and packages may be annotated. Unlike Javadoc tags, Java annotations can be reflective in that they can b ...
简述     The toString() method returns a string representing the source code of the function.     简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。 句法     function.toString(indentation) 或 Function.prototype.toString() 详细描述      The Function object overrides the toString method inherited from Object; ...
      Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个位元为一个单元,对应某个可打印字符。三个字节有24个位元,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9 ,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。一些如uuencode的其他编码方法,和之后binhex的版本使用不同的64字符集来代表6个二进制数字,但是它们不叫Base64。【摘自维基百科】        为了保证所输出的编码位可读字符 ...
                                                                                题:给定一个整数N,求出N!末尾有多少个零,比如N=10,N!=3628800,10!末尾有两个零。   首先温固一下阶乘的相关知识! 阶乘(factorial)是基斯顿·卡曼(Christian Kramp, 1760 – 1826)于1808年发明的运算符号。阶乘,也是数学里的一种术语。 任何大于1的自然数n阶乘表示方法:n!=1×2×3×……×n 或n!= n×(n-1)! 0!=1,注意(0的阶乘是存在的). 双 ...
     在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是
Global site tag (gtag.js) - Google Analytics