- 博客(83)
- 收藏
- 关注
原创 排序
选择排序选择排序的算法是从数组中找到最小的,然后放在第一个位置,之后再找剩余的元素放到第二个位置...需要两个for循环,每次都拿外循环中的一个数和内循环的所有数进行比较,把每次循环得到的最小数放到前面拿出一个元素,与自身除外的其他元素比较,得出一个最值进行交换。一次循环仅得到一个最值,但是只有得到最值才做交换动作,否则不动。也就是说一次循环只需交换一次。 var arr = [3,5
2016-08-04 20:22:16 262
原创 青蛙跳台阶问题
问题一:有一只青蛙,需要跳上100级台阶。青蛙每次可以调一级或者两级台阶。问青蛙有多少种方式可以跳100级台阶。思路:逆推 当青蛙站在100级台阶上时,那它跳上100级时有可能是从99级跳一级上来的,也可能是从98级跳两级跳上来的(从98级跳两个一级包括在从99级跳一级情况内,所以不予考虑);所以f(100) = f(99)+f(98)。而跳上99级就分为从98级跳一级和从97级跳两
2016-08-03 20:15:51 933
原创 递归之斐波那契数列
1.斐波那契数列指的是这样的一个数列:0,1,1,2,3,5,8,13,21,34,55,89,144...2.特别指出:第0项是0,第一项是13.这个数列从第二项开始,每一项都等于前两项之和。代码: function fn(n){ if(n < 0){ return -1; } else if(n == 0){
2016-08-03 14:12:19 611
原创 递归介绍
递归函数:调用自身的函数。在函数体内部直接或间接地调用自身。递归函数的理解:1.递归其实就是把问题传递下去,直到找到某个确切的结果后,再一步一步回归初始问题本身的过程。2.举例:我想知道张三的身高,张三没直接告诉我他多高,直说比张四高1cm;我只好去问张四,张四说比张五高1cm;张五比张六高1cm;我一直问下去,张七,张八,张九,终于知道了张十是170cm。这个过程就是把问题传递下去的
2016-08-03 14:04:50 404
原创 轮播图
一、是用js实现轮播图功能通过for循环为所有图片和控制点添加class选择器变得不可见,为当前图片和控制点添加class选择器变得可见。HTML文件: <!--快捷写法 ul.pointList>li*3 -->
2016-06-05 22:19:08 1976
原创 GUI
容器中的组件的排放方式,就是布局。常见的布局管理器:FlowLayout(流式布局管理器)从左到右的顺序排序Panel默认的布局管理器BorderLayout(边界布局管理器)东、南、西、北、中Frame默认的布局管理器GridLayout(网格布局管理器)规则的矩阵CardLayout(卡片布局管理器)选项卡GridBagLayout(网格包布局管
2015-06-06 21:41:52 407
原创 IO流——File类
File类用来将文件或文件夹封装成对象方便对文件与文件夹的属性信息进行操作File对象可以作为参数传递给流的构造函数import java.io.*;public class FileDemo { public static void main(String[] args) throws IOException { consMehtod(); } public s
2015-06-06 21:35:12 364
原创 IO流——字节流输入输出
/* 字节流: 读:InputStream 写:OutputStream 需求:想要操作图片数据,这是就要用到字节流。 */import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class FileStream{ public s
2015-05-25 20:53:21 374
原创 IO流——字符流输入输出
字符流和字节流:字符流两个基类:InputStream和OutputStream 字节流两个基类:Reader和Writer 先学一下字符流的特点 既然IO流是用于操作数据的,那么数据的最常见体现形式是:文件 那么先以操作文件为主来演示。/*需求:在硬盘上,创建一个文件并写入一些文字数据。找到一个专门用于操作文件的Writer子类对象,FileWr
2015-05-21 20:57:18 489
原创 Map集合
Map集合:该集合存储键值对。一对一往里存,而且保证键的唯一性。1.添加a)put(K key,V value):将指定的值与此映射中的指定键关联b)putAll(Map m):从指定映射中将所有映射关系复制到此映射中2.删除a) clear():从此映射中移除所有映射关系。b) remove(Object key):如果存在一个键的映射关系,则将其从此映射中移除3.
2015-05-17 19:05:19 420
原创 Set
Set:无序,不可以有重复元素 HashSet:数据结构是哈希表,线程是非同步的。 保证元素唯一性的原理:判断元素的hashCode值是否相同。如果相同,继续判断 元素的equals方法是否为true。 TreeSet:可以对Set集合中的元素进行排序。 底层数据结构是二叉树。 保证元素唯一性的依据:compareTo方法retrun 0. TreeSet排序的第
2015-05-15 19:40:25 300
原创 泛型
泛型:JDK1.5版本以后出现新特性。用于解决安全问题,是一个安全机制。好处:1.将运行时期出现问题ClassCastException,转移到了编译时期。方便于程序员解决问题,让运行事情问题减少,安全了。2.避免了强制转换麻烦。 泛型格式:通过来定义要操作的引用数据类型。 在使用Java提供的对象时,什么时候写泛型呢?通常在集合框架中很常见。只要见到就要定义泛型。
2015-05-12 17:02:29 336
原创 LinkedList
LinkedList的特有方法:addFirst();addLast();getFirst();getLast();获取元素但不删除元素。如果集合中没有元素,会出现NoSuchElementException异常。 removeFirst();removeLast();获取元素同时删除元素。如果集合中没有元素,会出现NoSuchElementExcept
2015-05-07 16:48:04 365
原创 List集合
CollectionList:元素是有序的,元素可以重复。因为该集合体系有索引。1>ArraryList:底层的数据结构使用的是数组结构。特点:查询速度快,但是增删较慢。线程不同步2>LinkedList:底层使用的是链表结构。特点:增删速度快,查询速度慢3>Vector:底层是数组数据结构。线程同步。被ArrayList替代了Set:元素是无序的,元素不可以重复List:
2015-05-05 11:10:32 472
原创 集合类共性方法及迭代器
为什么出现集合类?面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。 数组和集合类都是容器,有何不同?数组长度固定,集合长度可变;数组存储基本数据类型,集合只可以存储对象。 集合的特点:集合只用于存储对象,长度是可变的,集合可以存储不同类型的对象。为什么会出现这么多的容器?因为
2015-05-04 20:48:33 425
原创 String类
String类适用于描述字符串事物,那么它就提供了多个方法对字符串进行操作。 常见的操作: 1.获取 1。1字符串中包含的字符数,也就是字符串的长度 int length():获取长度 1.2根据位置获取位置上的某个字符 char charAt(int index) 1.3根据字符获取该字符在字符串中的位置 int indexOf(int ch):返回ch在字
2015-05-04 19:12:21 376
原创 StringBuffer
StringBuffer 是一个字符串缓冲区,是一个容器。 1.长度是可以变化的。2.可以字节操作多个数据类型3.最终会通过toString方法变成字符串 (CURD)creat update read delete 1.存储StringBuffer append():将指定数据作为参数添加到已有数据的结尾处StringBuffer insert(ind
2015-05-04 19:11:39 376
原创 基本数据类型
基本数据类型对象包装类 byte Byteshort shortint Integerlong Long boolean Boolean float Float double Double char Character 基本数据类型对象包装类的最常见作用,就是用于基本数据类型和字符串类型之间转换 基本数据类型
2015-05-04 19:08:00 412
原创 停止线程
如何停止线程?只有一种,run方法结束。开启多线程运行,运行代码通常都是循环结构。只要控制住循环(添加标记),就可以让run方法结束,也就是线程结束。class StopThread implements Runnable{ private boolean flag = true; public void run() { while(flag) { S
2015-04-29 20:44:08 339
原创 生产者和消费者问题
生产者和消费者问题:假设有一个仓库,生产者生产产品放入仓库中,消费者从仓库中消费产品。生产者和消费者有多个。class ProducerConsumerDemo{ public static void main(String[] args) { Resource r = new Resource(); Producer pro = new Producer(r); Co
2015-04-28 21:13:05 577
原创 线程通讯
线程通讯:其实就是多个线程在操作同一个资源,但是操作的动作不同。解决安全问题class Res{ String name; String sex;}class Input implements Runnable{ private Res r; Input(Res r) { this.r = r; } public void run() { i
2015-04-28 19:14:02 301
原创 死锁
死锁现象:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期的阻塞,因此程序不可能正常终止。 死锁产生的四个必要条件:1.互斥使用,即当资源被一个线程使用(占有)时,别的线程不能使用。2.不可抢占,资源请求者不能强制从资源占有者中夺取资源,资源只能由占有者主动释放。3.请求和保持,即当资源请求者在请求其他的资源的同时保持对原有资源的占有。4.循
2015-04-26 20:27:46 391
原创 单例模式
单例模式分三种:懒汉式单例,饿汉式单例,登记式单例单例模式有以下特点:1.单例模式只能有一个实例2.单例类必须自己创建自己的唯一实例3.单例类必须给所有其他对象提供这一实例//懒汉式 延迟加载class Single{ private static Single s = null; private Single(){} public stat
2015-04-26 17:33:27 301
原创 多线程——同步函数
来看下面这个程序/*需求:银行有一金库。有两个储户分别存300元,每次存100,存3次。目的:该程序是否有安全问题。如果有,如何解决?*/class Bank{ private int sum; public void add(int n) { sum = sum + n; System.out.println("sum =
2015-04-26 16:37:53 469
原创 多线程——安全问题
多线程运行可能出现安全问题 以买票程序为例,共有100张票,四个窗口同时买票。class Ticket implements Runnable{ private int tick = 100; public void run() { while(true) { if(tick > 0) { try { Thread.sleep(
2015-04-25 16:48:48 353
原创 多线程的创建方式
创建新执行线程有两种方法。一种是将类声明为Thread的子类。该子类应重写Thread类的run方法。步骤:1.定义类继承Thread,建立子类对象的同时线程也被创建。2.复写Thread类中的run方法目的:将自定义代码存储在run方法中,让线程运行3.调用线程的start方法该方法两个作用:启动线程, 调用run方法 class Test extends T
2015-04-24 16:39:13 450
原创 多线程概述
基本概念程序:一段静态的代码,它是应用软件执行的蓝本。进程:是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。每一个进程执行都有一个执行单元。该顺序是一个执行路径,或者叫一个控制单元。线程:就是进程中的一个独立的控制单元。线程控制着进程的执行,线程间可以共享相同的内存单元。 Java的多线程就是在操
2015-04-24 15:59:54 416
原创 内部类
在一个类中声明另一个类,这样的类称为内部类。当描述事物时,事物的内部还有事物,该事物用内部类来描述。因为内部事物在使用外部事物的内容。内部类的访问规则:1.内部类可以直接访问外部类中的成员,包括私有。之所以可以直接访问外部类的成员,是因为内部类中持有了一个外部类的引用,格式为:外部类名.this2.外部类要访问内部类,必须建立内部类对象。注意:当内部类中定义了静态成员,
2015-04-16 20:47:43 362
原创 多态性
多态:可以理解为事物存在的多种体现形态比如:人:男人,女人动物:猫,狗。猫 x = new 猫();动物 x = new 猫();猫既是猫类型,又是动物类型。多态的体现:父类的引用可以接收自己的子类对象多态的前提:必须是类与类之间有关系(继承或实现);通常还存在覆盖多态的好处:大大提高了程序的扩展性多态的弊端:只能使用父类的引用访问父类的成员多态的应用:
2015-04-14 16:05:37 336
原创 接口
为了克服单继承的缺点,Java使用了接口,一个类可以实现多个接口。接口的声明与使用声明:接口:是一个特殊的抽象类。当抽象类中的方法都是抽象的时,那么该类可以通过接口的形式来表示。接口定义时,格式特点:1.接口中常见定义:常量,抽象方法。2.接口成员都有固定修饰符常量:public static final方法: public abstract格式:inter
2015-04-12 17:34:54 423
原创 Final Abstract
Final关键字Final关键字可以修饰类、变量和函数。Final类被final修饰的类不可以被继承。为了避免被继承,被子类复写功能。Final方法被final修饰的方法不可以被复写。常量被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量也可以修饰局部变量。当在描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起个名字。而这个值不
2015-04-10 17:10:21 363
原创 数组
概念:同一种数据类型的集合,其实数组就是一个容器。数组属于引用型变量。1、声明数组1>声明一维数组的两种格式:数组的元素类型 数组名字[];数组的元素类型[] 数组名字;2>声明二维数组的两种格式:数组的元素类型 数组名字[][];数组的元素类型[] 数组名字[];注:Java不允许在声明数组的方括号内指定数组元素的个数。2.创建数组分配
2015-04-09 20:06:52 460
原创 数据类型
一、逻辑类型常量:true、false变量:使用逻辑变量boolen来声明逻辑变量,声明时也可以附初值。如:Boolen x,ok = true,关闭 = false;二、整数类型1、字节型:byte变量:使用关键字byte来声明。例如:Byte x = -12,漂亮 = 98;常量:Java中不存在byte型常量的表示法,但可以把一定范围内的int型常量赋值给by
2015-04-09 20:04:35 522
原创 Java基本语句
标识符:定义:用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列。语法规则:1>标识符由字母、数字、下划线、美元符号组成,长度不受限制。 2>标识符的第一个字符不能是数字字符。 3>标识符不能是关键字。 4>标识符不能是true、false和null(尽管它们不是Java关键字)。注意:标识符中的字母区分大小写,起名字时尽量“见明知义”。
2015-04-09 20:03:27 402
原创 类和对象3
继承是一种有已有的类创建新类的机制。利用继承,可以先编写一个共有属性的类,再根据该一般类编写具有特殊属性的新类,新类继承一般类的状态和行为,并根据需要增加新的状态和行为。Java不支持多重继承(子类只能有一个父类)。作用:1.提高了代码复用性。2.让类与类之间产生了关系。有了这个关系,才有了多态的特性。注意:千万不要为了获取其他类的功能,简化代码而继承。必须是类与类之间有所属关系才
2015-04-09 19:57:23 388
原创 类和对象1
Java是面向对象的程序设计语言,面向对象编程主要体现以下3个特性: 1.封装性面向对象编程的核心思想之一就是将数据和对数据的操作封装在一起,通过抽象,即从具体的实例中抽取共同的性质形成一般的概念,比如类的概念。信息隐藏作用只让可信的对象操作。 2.继承性子类可以继承父类的属性和功能,同时又可以增添子类独有的数据和数据上的操作。 3.多态性一种是操作名称的多态。
2015-04-08 20:52:00 352
原创 SDUTOJ 3034 ——炸学校
题目描述“小儿么小二郎,背着那炸弹炸学校,不怕那太阳晒,也不怕那风雨狂。”估计这首歌我们大家都耳熟能详了。于是就有一群小学生们商量着炸学校。要把本市的小学的都给炸掉。于是他们商量好了一个出发点source与集合点sink。然后有无数个小学生,n-2个学校,每个小学生都从出发点出发,负责背着一个炸弹,然后把炸弹偷偷放置在一个学校里,然后返回到集合点。由于这群小学生们还急着回去玩撸啊撸
2014-11-30 22:34:25 650
原创 AOE网上的关键路径
题目描述 一个无环的有向图称为无环图(Directed Acyclic Graph),简称DAG图。 AOE(Activity On Edge)网:顾名思义,用边表示活动的网,当然它也是DAG。与AOV不同,活动都表示在了边上,如下图所示: 如上所示,共有11项活动(11条
2014-11-29 23:28:46 994
原创 图结构练习——判断给定图是否存在合法拓扑序列
如何进行拓扑排序:(1)在有向图中选一个没有前驱的顶点并输出之;(2)从图中删除该顶点和所有以他为尾的弧;重复上述两步,直到所有顶点均已输出,或者当前图中不存在无前驱的顶点为止,后一种情况则说明有向图中存在环。题目描述 给定一个有向图,判断该有向图是否存在一个合法的拓扑序列。输入 输入包含多组,每组格式如下。第一行包含两个整数n,m,分别代表
2014-11-29 23:14:14 550
原创 完美网络
题目描述完美网络是连通网络的基础上要求去掉网络上任意一条线路,网络仍然是连通网络。求一个连通网络要至少增加多少条边可以成为完美网络。输入第一行输入一个数T代表测试数据个数(T(0输出对于每个样例输出最少增加多少线路可以成为完美网络。每行输出一个结果。完美网络要求每个点的度都〉=2,所以在输入点的时候,每次都让点的度加1。然后遍历全
2014-11-28 09:09:54 430
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人