Homework
Java大佬
这个作者很懒,什么都没留下…
展开
-
Java之运算符
运算符第一优先级[ ] . ( ) int[] array = {1,2,3,4}; //[]声明一个数组 array[0] = 2; //[]属性获取数组下标里的东西 System.out.println(array); int len = array.length...原创 2018-04-08 13:34:00 · 225 阅读 · 1 评论 -
两个队列实现一个栈
出队原理代码实现class QueueLink{ int elem[]; /** * 队头 */ int front; /** * 队尾 */ int rear; /** * 当前循环内部有效循环个数 */ int usedSize = 0; int allS...原创 2018-05-11 15:55:21 · 106 阅读 · 0 评论 -
单链表的环问题以及相交问题
1.求单链表是否有环?若有环,求环的入口点以及环的长度。流程:创建一个有环的单链表——-> 先判断是否有环:public boolean isLoop(){ Entry fast = head;//走得快的结点 Entry slow = head;//走得慢的结点 while(fast != null && f...原创 2018-04-27 13:00:47 · 123 阅读 · 0 评论 -
单链表的逆置以及倒数第K个元素的值
单链表的逆置逆置原理:地址的交换 public Entry revers(){ Entry newHead = null;//定义一个新的头结点用来输出逆置后新的头结点 Entry prev = null;//定义一个前驱(为了达到逆置使前后结点的next逆置使用到) Entry cur = head;//定义一个一定的头结点 ...原创 2018-04-27 13:45:17 · 694 阅读 · 1 评论 -
随机选取基准法
基本的快速排序选取第一个或者最后一个元素作为基准。这样在数组已经有序的情况下,每次划分将得到最坏的结果。一种比较常见的优化方法是随机化算法,即随机选取一个元素作为基准。这种情况下虽然最坏情况仍然是O(n^2),但最坏情况不再依赖于输入数据,而是由于随机函数取值不佳。实际上,随机化快速排序得到理论最坏情况的可能性仅为1/(2^n)。所以随机化快速排序可以对于绝大多数输入数据达到O(nlogn)的期望...原创 2018-05-18 14:34:18 · 490 阅读 · 0 评论 -
聚集相同的元素
聚集和基准相同的元素使和基准元素相同的元素靠近基准位置,重新定义left与right位置原理代码public class Test2 { /** * 找基准 * @param array * @param low * @param high * @return */ public static in...原创 2018-05-18 14:59:19 · 313 阅读 · 0 评论 -
堆排序
子、父结点代码public class duiSort { public static void adJust(int[] array,int start,int end){ int tmp = array[start]; for(int i = 2*start+1;i <= end;i = 2*i+1){ ...原创 2018-05-18 16:10:26 · 110 阅读 · 0 评论 -
循环单链表、双向链表以及顺序栈
1.循环单链表循环单链表的结构:循环单链表的头插循环链表的尾插循环链表的删除 代码:class TestClink{ class Entry{ int data; Entry next; //无参构造方法 public Entry(){ this....原创 2018-05-06 15:20:08 · 237 阅读 · 0 评论 -
BF算法
思想BF算法,即暴风(Brute Force)算法,是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。 代码public class Test1 { /** ...原创 2018-05-13 15:28:55 · 336 阅读 · 0 评论 -
shell排序算法
思想先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。所有距离为dl的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2 < d1重复上述的分组和排序,直至所取的增量dt=1,即所有记录放在同一组中进行直接插入排序为止。原理特性Shell排序的执行时间依赖于增量序列。 好的增量序列的共同特征: ① 最后一个增量必须为1; ...原创 2018-05-16 15:56:49 · 786 阅读 · 0 评论 -
快速排序(递归与非递归实现)
递归public class QSort { /** * 找基准 * @param array * @param low * @param high * @return */ public static int partion(int[] array,int low,int high){ int t...原创 2018-05-16 16:09:59 · 4851 阅读 · 0 评论 -
优先级队列:按照优先级存储数据
优先级队列代码实现class PrioLink{ class Entry{ int data; Entry next; int prio; public Entry(){ data = -1; next = null; prio = -1;...原创 2018-05-11 15:22:34 · 636 阅读 · 0 评论 -
链式队列
链式队列入队代码实现class LinkQueue{ class Entry{ int data; Entry next; public Entry(){ data = -1; next = null; } public Entry(i...原创 2018-05-11 15:04:15 · 177 阅读 · 0 评论 -
Java单链表
单链表单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。 链表的插入(1)头插法看图看图(2)尾插法看图看图 (3)插入指定位置看图看图 代码c...原创 2018-04-25 00:17:05 · 152 阅读 · 0 评论 -
数据类型、装箱、拆箱以及引用类型String
数据类型数据类型分为两大类: (1)基本类型 范围大小: byte < ( short = char) < int < long < float < double (2)引用类型 String array etc…装箱Integer i = 10; ...原创 2018-04-01 15:49:50 · 138 阅读 · 0 评论 -
二维数组的遍历以及四种拷贝方式
例:数组的倒置以及合并public class TestDemo1 { //反转数组 public static void reverse(int[] array){ for(int i =0;i<array.length/2;i++){ int tmp = array[i]; array[i] = ar...原创 2018-04-15 13:25:07 · 427 阅读 · 0 评论 -
if else,switch以及
if-else语句对于简单的比较两个或几个已知数的大小,就可以用到if-else来选择:public class TestDemo { public static void max(int a,int b) { if(a>b){ System.out.println("a>b"); }else if(a==b)...原创 2018-04-11 13:20:09 · 173 阅读 · 0 评论 -
Java之递归、数组排序
例题1.插入一个元素 2.找出最大值以及最小值 3.合并数组 4.填充 5.删除数 6.字符串的输出public class TestDemo1 { //插入元素 public static int[] Insert(int[] array,int val,int index) { int[] array2 = new int[array.leng...原创 2018-04-18 13:32:28 · 1626 阅读 · 0 评论 -
Java之数组的拷贝
两个数的转化class TestSwap{ public int data;}public class TestDemo { public static void swap(int a,int b) { int tmp=a; a = b; b = tmp; } public static void sw...原创 2018-04-13 03:38:00 · 126 阅读 · 0 评论 -
类与对象
类的定义以及类方法的调用类的定义:类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础。类是一种用户定义类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。类和对象的关系类:实体的抽象 对象:真正的实体 定义一个类: 给一个类名为Peroson,再给他添加数据为name...原创 2018-04-23 21:32:38 · 128 阅读 · 0 评论 -
中缀表达式到后缀表达式的转换
运行级别的比较规则: 1.相同等级的运算符,栈内高于栈外 2.栈外的左括号优先级最高 3.栈内的左括号优先级最低 4.栈外的右括号优先级最低(低到和栈内的左括号相同)public class Constant { public static final int OPERATORS_PRIO_PLUS_IN = 4; //栈内加法 public static fin...原创 2018-05-09 13:14:10 · 130 阅读 · 0 评论 -
内部类
内部类内部类分为四种:实例内部类、静态内部类、本地内部类、匿名内部类实例内部类1.实例内部类中的方法可以直接使用外部类的实例变量和实例方法。 2.在实例内部类中可以直接用内部类创建对象class OuterClass2{ private int a = 10; private int b = 20; private static int c = 30; ...原创 2018-04-24 21:57:19 · 167 阅读 · 0 评论 -
链式栈
链式栈入栈入栈使用头插法出栈出栈则为删除头结点的后一个结点 代码实现class LinkStack{ class Entry{ int data; Entry next; /** * 无参构造方法 */ public Entry(){ ...原创 2018-05-09 13:23:35 · 105 阅读 · 0 评论 -
循环队列
循环队列特性:先进先出,浪费一个数据单元,用来判断是否为满原理代码实现class QueueLink{ int elem[]; /** * 队头 */ int front; /** * 队尾 */ int rear; /** * 当前循环内部有效循环个数 */ ...原创 2018-05-09 13:33:41 · 1796 阅读 · 0 评论 -
三分取基法
原栈class Stack{ int top; int[] elem; public Stack(){ this(10); } public Stack(int size){ this.elem = new int[size]; this.top = 0; } /** * 栈是...原创 2018-06-01 15:39:10 · 130 阅读 · 0 评论