- 博客(60)
- 资源 (1)
- 收藏
- 关注
原创 顺序查找
一、定义:按照序列原有顺序对数组进行遍历比较查询的基本查找算法二、基本原理:对任意一个序列以及一个给定的元素,将给定元素与序列中元素依次比价,直到找出与给定关键字相同的元素,或将序列中的元素与其都比较完为止。三、适用方式:顺序表、链表四、实现设有一个数据集合,{5,2,9,23,6,17,54}给定某一关键字key,在数据集合中查找key值所对应的数据元素,若找到返回下标,否则返回-...
2019-04-27 10:16:36
2649
原创 折半查找
一、定义:折半查找也称二分法查找,是一种在有序数组中查找某一特定元素的搜索算法。这种方法要求待查找的表顺序存储而且必须是有序的。二、查找过程首先计算表中间的位置,将表中间位置处的关键字与查找的关键字进行比较,如果相等,则查找成功;否则利用中间位置将表分为前、后两个子表,如果中间位置的关键字大于查找的关键字,则查找前子表,否则查找后子表。重复上面的过程,直到找到要查找的关键字为止,否则查找失败...
2019-04-22 22:52:56
37573
5
原创 适配器模式
一、定义将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。适配器的别名为包装器模式。既可以作为类结构模式,也可以作为对象结构型模式。在适配器模式定义中所提及的接口是指广义的接口。它可以表示一个方法或者方法的集合。二、适配器分为:类适配器、对象适配器、缺省适配器1、类适配器结构图实现//目标抽象类public interface Interface...
2019-04-21 15:24:16
251
原创 冒泡排序
一、排序思想假设由小到大排列,所谓冒泡,就是将小数向上浮,大数向下沉,按这个规则,将所有数据最终变成由小到大的数据序列。先从第一个数据开始,将相邻的两个数进行比较,如果大数在前,则将这两个数进行交换,然后再比较第二个数和第三个数,当第二个数大于第三个数时,交换这两个数……重复这个过程,只要前面的数大于后面的数,就交换,直到最后两个数比较完毕。这个经过第一趟的冒泡,第一趟比较完成后最大的数将排在数...
2019-04-16 21:54:01
198
原创 简单选择排序
一、排序思想假定由小到大排序,首先先在待排序列中选出最小的元素,然后将这个最小的元素与第一个元素进行交换,第一个元素到位,这是第一次排序;第二次排序就是从第二个元素到最后一个元素中选择最小的元素,再将最小的元素与第二个元素进行交换,第二个元素到位。以此类推,进行n-1趟排序,序列就有序了。例如将数据3,3,1,9,5,2,8进行排序初始状态[][3 3 1 9 5 2 8]①[1][3 3...
2019-04-15 22:22:40
204
原创 直接插入排序
1、基本思想:插入排序的基本思想:在一个已经排好序的记录子集的基础上,每一步将下一个待排序的记录有序地插入到已排好序的记录子集中,直到将所有待排记录全部插入为止例如:对这些数进行由小到大排序 3 3 1 9 5 2 8初始状态:[3][3 1 9 5 2 8]①[3 3][1 9 5 2 8]②[1 3 3][9 5 2 8]③[1 3 3 9][5 2 8]④[1 3 3 5 9]...
2019-04-15 21:43:20
127
原创 代理模式
一、定义:为其他对象提供一种代理以控制对这个对象的访问,在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。一个类代表另一个类的功能,这种类型的设计模式属于结构型模式。二、结构三、实现代理模式分为:静态代理模式、动态代理模式1、静态代理模式//创建服务类接口public interface BuyHouse { voi...
2019-04-14 21:29:36
113
原创 工厂模式
一、定义:工厂模式是Java中最常用的设计模式之一,使用工厂方法替代new操作的一种模式。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。二、工厂模式分为:简单工厂模式、工厂方法模式、抽象工厂模式简单工厂模式1、定义:简单工厂模式是属于创建型模式,又叫静态工厂方法模式,...
2019-04-14 18:28:15
191
原创 上传文件
利用表单和servlet上传文件的操作①单文件上传表单代码要上传文件,必须利用multipart/form-data设置HTML表单的enctype属性值<form action="fileUpload" method="post" enctype="multipart/form-data"> <input type="text" name="name"/>...
2019-04-10 22:42:18
183
原创 Servlet中的九大对象
Servlet中的九大对象1、out 对象:向客户端发送数据的对象,与”response”对象不同,通过out对象发送的内容是浏览器需要显示的内容,可以通过out对象直接向客户端写一个由程序动态生成的HTML文件作用域:page页面创建out对象PrintWriter out = response.getWriter();out.print();2、request对象:接收客户端发来...
2019-04-07 20:40:25
2906
原创 Servlet
一、Servlet简介Servlet是运行在Web服务器或应用服务器上的小程序,作为客户端和服务端上的数据库或应用程序之间的中间层作用:相当于一个中转处理的容器,连接客户端和服务其端的信息交互和处理。在MVC中担任C的作用,把M层和V层分隔开,保证安全性。二、Servlet的实现方法:...
2019-04-07 10:15:28
135
原创 JDBC(Java连接数据库)
Java连接数据库具体有5个步骤:①加载数据库驱动文件②建立Java和数据库之间的连接通道③产生负责传递SQL命令的对象④执行⑤关闭数据库具体操作如下:以MySQL数据库为例package connectdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedSta...
2019-02-27 17:45:05
130
原创 数据库查询语句练习题二(员工部门表)
表结构dept(部门表)deptno 部门编号loc 部门位置dname 部门名emp(员工表)empno 员工编号ename 员工姓名sal 员工奖金comm 员工佣金job 员工职务mgr 员工上司编号deptno 员工所属部门创建表并插入信息创建部门表create table dept(deptno int(11) not null primary ...
2019-02-26 17:37:42
10255
原创 数据库查询语句练习题一(图书表)
相关题目:1.显示前3名作者信息SELECT * FROM authorsinfo ORDER BY authors_id LIMIT 0,3;2.显示倒数后2名作者SELECT * FROM authorsinfo ORDER BY authors_id DESC LIMIT 0,2;3.显示最新借阅图书的信息SELECT * FROM booksinfo WHERE b...
2019-02-26 16:03:59
8098
原创 equals和==的区别
==可以对基本类型比较,也可以对引用类型进行比较对于基本类型:比较的是值是否相等对于引用类型:比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否指相同的对象equals只能对引用类型进行比较equals用来比较两个对象的内容是否相等,因为所有的类都继承自java.lang.Object类,所以适用于所有对象,如果没有对equals()方法进行重写,调...
2019-02-25 18:45:35
169
原创 Java集合——ArrayList源码
一、ArrayList数据结构ArrayList底层是数组实现的,数组元素的类型是Object类型,可以动态的增长和缩减。ArrayList先继承AbstractList,AbstractList实现List接口二、ArrayList的属性 //版本号 private static final long serialVersionUID = 86834525811228921...
2019-02-15 17:39:30
151
原创 Java集合——LinkList源码
一、LinkedList数据结构LinkdList底层是由双向链表构成的,并且头结点不存放数据。LinkedList继承了AbstractSequentialList抽象类,由AbstractSequentialList继承了Abstract类。LinkedL实现了Deque接口,Deque接口继承了Queue接口。Node结点因为是双向链表,每个结点都有前驱结点和后继结点。Node结点一...
2019-02-15 16:11:56
408
原创 线性表之单链表
线性表的链式存储结构不需要用地址连续的存储电影院来实现,他是通过“链”建立起数据元素之间的逻辑关系,因此对线性表的插入、删除运算不需要移动数据元素。一、单链表单链表每个结点的结构如图,每个元素都是如此存放数据元素的域称为数据域data,存放其后继地址的域指针域称为next,因此n个元素的线性表通过每个结点的指针域拉成一个链,称之为链表。因为每个结点中只有一个指向后继的指针,所以称其为单链表...
2019-01-27 17:14:45
351
原创 把两个数组合并
①将两个整型升序数据集合A和B合并成一个升序数据集合例A={3,5,7,8,9,12,16} B={2,4,7,9,11}结果:C={2,3,4,5,7,7,8,9,9,11,12,16}#include<stdio.h>#define M 7#define N 5#主函数int main(void){ int a[M]={3,5,7,8,9,12,1...
2019-01-09 19:15:34
18803
原创 单向链表之创建特殊链表及跑链表习题
①设数据集合A,其值均为正整数,无序且含有重复值。创建一个单向链表,每个结点数据域的值为数据集合的值且不重复例A={3,2,2,3,5,3,8,5,2}创建后的链表如下:...
2019-01-09 16:57:52
219
原创 线性表之顺序存储结构
线性表是n(n≥0)个数据类型相同的数据元素组成的有限序列,数据元素之间是一对一的关系,即每个数据元素最多有一个直接前驱和一个直接后继线性表的顺序存储结构是指在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素,元素之间的逻辑关系通过存储位置来反映,用这种存储形式存储的线性表称其为顺序表。...
2019-01-02 15:46:40
413
原创 单列集合之Set集合
Set接口和List接口一样,也是继承Collection接口,它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充,只是比Collection接口更加严格了。与List接口不同的是,Set接口中元素无序,并且都会以某种规则保证存入的元素不出现重复,即:Set集合的特点是:无序,不重复Set接口主要有两个实现类:HashSet和TreeSet。一、H...
2018-12-29 17:38:07
446
原创 单列集合之List集合
Collection是单列集合类的根接口,用于存储符合某种规则的元素。部分关系结构图如下:List集合中允许出现重复的元素,所有元素是以一种线性方式进行存储的,在程序中可以通过索引来访问集合中的指定元素。还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。即List集合元素时有序可重复的。①ArrayList抽象类:此类提供 List 接口的骨干实现,以最大限度地减少实现“随机访问”数...
2018-12-29 12:02:32
499
原创 有关Map集合(双列集合)
Map集合中重要的几个接口和类如下:①SortedMap接口:进一步提供关于键的总体排序 的 Map。该映射是根据其键的自然顺序进行排序的,或者根据通常在创建有序映射时提供的 Comparator 进行排序。②NavigableMap接口:(SortedMap的子接口)扩展的 SortedMap,具有了针对给定搜索目标返回最接近匹配项的导航方法。③AbstractMap抽象类:此类提供 Ma...
2018-12-27 21:07:46
342
原创 验证码的制作
一般登录界面都需要用到验证码,下面简单说一下利用Java中的Swing组件制作验证码。首先new一个JLabel对象,在其上面进行填充;接着创建一个图片,在图片上画出验证码。要画验证码就必须定义画笔,利用画笔进行绘画。利用随机数,产生随机的验证字母或者数字以及验证码的颜色。最后利用JLbel的setIcon()方法,将绘画好的图片显示出来。(注意,此方法只能接收Icon类型,所以在此之前,要...
2018-12-27 18:07:03
353
原创 接口和异常
一、接口1、接口定义:接口是抽象方法的集合,是一个规范,一般不去实现方法内容,接口的关键字是interface,需要有子类去实现接口中的所有方法。一个类可以实现多个接口(Java中的多继承)2、定义一个接口的步骤:(1)创建一个接口,关键字为interface;(2)书写接口中的方法和属性,方法不能有方法体且访问修饰符必须是public(可以省略);(3)创建一个类。通过关键字impl...
2018-11-18 22:49:40
2646
原创 递归习题
一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了 七个村子后还剩两只鸭子,问他出发时共赶多少只鸭子?经过每个村子卖出多少只鸭子?/* * Author:大壳 * Date:2018/11/17 * Version:Ecplise * Describation:利用递归,计算鸭子数 */public class Dark { static i...
2018-11-17 19:14:51
505
原创 clone
通过实现Cloneable接口重写Object类的clone()方法实现一个简单的克隆对象public class 克隆 implements Cloneable { public static void main(String[] args) throws CloneNotSupportedException{ 克隆 a1 = new 克隆(); Object a2 =a1.clon...
2018-11-11 22:04:56
90
原创 封装类和基本类型
封装类和基本类型最大的区别就是:封装类可以调用属性和方法,而基本类型不能。可以通过封装类实现把String类型转换成需要的基本类型。例如:public static void a() { int a2 = Integer.parseInt(&quot;8&quot;); double b1 =Double.parseDouble(&quot;78.9&quot;); char c1 = &quot;yianyi
2018-11-11 21:37:00
3585
原创 数学类
public class 数学类 { /* *构造方法是私有的,不能new对象 *Math类中的方法都是静态的,所以也不需要new对象 */ public static void main(String[] args) { //Math的两个常量属性E和PI System.out.println(Math.E);//2.718281828459045 System.o...
2018-11-11 20:52:17
186
原创 日期
public class 日期 { //第一种方法: public static void a() { Date d1 = new Date(); System.out.println(d1);//获取系统当前的时间 long time = d1.getTime(); System.out.println("从1970年到此时此刻,一共经历了"+time+"毫秒");//获取...
2018-11-11 20:29:20
132
原创 字符串strcpy()、strcat()函数原型的实现
一、strcpy()函数:实现字符串的复制实现将数组s1中的字符串复制到数组s2中#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;string.h&amp;gt;#define N 66void strcopy(char s2[],char s1[]){ //方法一: /* int i = 0; int j = 0; while(s1[i]){ s2[j+...
2018-11-06 14:30:40
3945
2
原创 字符串(1)
一、字符串常量(1)字符串的标识方法:“字符串”,必须用双引号(2)字符串中可以直接表示转义字符;例:“tianyi\n”(3)测试字符串的大小:sizeof(“字符串”),末尾系统默认增加\0(4)测试有效字符串的个数:strlen(“字符串”)例题:字符串有效字符个数sizeof(“chi\0na”)7sizeof(“chi\0n\0a\0”)9...
2018-10-28 20:47:18
300
原创 KFC订餐
同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C++/python/Java,结合设计模式(2种以上)用到抽象工厂模式和建造者模式功能:(1)顾客单点食品(2)套餐选择public abstract class BaseFood { //定义餐品价格 protected double price; //定义餐品数量 pr...
2018-10-26 21:54:40
544
原创 两个数组相加
定义a,b数组用于存放两组数据,c数组存放a,b相加的结果两个数组相加分为两种情况:(1)a,b两个数组长度相等(2)a,b两个数组长度不相等(1)a,b两个长度相等时,数组c的长度等于数组a的长度或者数组b的长度(2)a,b两个长度不相等是,c的长度要根据实际情况进行分配 数组若数组a的长度比数组b的长度长,则数组c的长度等于数组a的长度反之等于数组b 的长度public clas...
2018-10-25 20:42:18
25857
原创 有关String
public class Demo{ public void a(){ String str1 = &quot;abc“; String str2 = &quot;abc“; //这里的str1和str2指向的是同一个地址 boolean b = str1 == str2; System.out.println(str1); Syste...
2018-10-24 21:39:35
126
原创 ATM机(递归)
ATM机的主要操作如图所示:查询余额存款取款改密退卡package study05;import java.util.Scanner;public class Demo05 { Scanner scan = new Scanner(System.in); int pass = 123456; int money = (int)(Math.random()*1000); i...
2018-10-23 21:36:58
340
原创 九九乘法表(递归方法)
递归方法输出九九乘法表思路:1:换行条件2:结束条件找到这2个条件public void Demo(int i,int j){ if(j <= i){ System.out.println(i + "*" + j + "=" + i * j + "\t"); j++; } if(i < j){ //换行 System.out.pr...
2018-10-23 20:40:09
1069
原创 数组习题
第一题:输入一个数组arr,返回数组中出现次数最多的元素和出现次数最少的元素思路:定义一个新的数组来存放数组arr中每个元素出现的次数再在新的数组中找出最大和最小的元素的索引即可public void Demo01() { //随机产生数组的大小 int [] arr = new int[(int)(Math.random()*10+6)]; //随机给数组中的元素赋值...
2018-10-23 19:41:10
310
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人