
算法
学习伴随着我与生俱来的直觉
这个作者很懒,什么都没留下…
展开
-
Java中在Main类中使用成员内部类
在一些程序题中我们有时候遇到需要在Main类中使用成员内部类如何在不对象化我们的Main类的前提下使用成员内部类呢?示例代码如下:package p1068;import java.util.ArrayList;import java.util.LinkedList;import java.util.PriorityQueue;import java.util.Queue;impor...原创 2018-01-30 14:09:45 · 783 阅读 · 0 评论 -
Java中使用size()方法遍历PriorityQueue出现元素不全的问题
在使用PriorityQueue类时使用for(int i=0; i与for(int i : priorityqueue)遍历PriorityQueue时有时会出现PriorityQueue未能正常排序甚至是size()方法未能正确返回PriorityQueue的大小的问题具体为什么会出现这个问题我也不是很清楚但是如果我们能用while(!priorityqueue.isE原创 2018-01-30 14:05:43 · 3269 阅读 · 5 评论 -
Java中利用Stack改变PriorityQueue的优先顺序
在Java中我们使用PriorityQueue类时由于PriorityQueue类中的优先顺序是先提取权值较小的元素如果我们需要从大到小来排序的话就可以使用Stack类作为辅助示例代码:PriorityQueue people = new PriorityQueue<>(); ArrayList persons = new ArrayList<>(); int size原创 2018-01-30 13:57:45 · 412 阅读 · 0 评论 -
Java中顺序队列PriorityQueue类的分析(转)
PriorityQueue本文github地址Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示。本文从Queue接口函数出发,结合生动的图解,深入浅出地分析PriorityQueue每个操作的具体过程和时间复杂度,将让读者建立对PriorityQueue建立清晰而深入的认识。总体介绍前面以Java ArrayDeque为例讲解了Sta转载 2018-01-30 13:52:05 · 1728 阅读 · 0 评论 -
Java中Scanner类nextLine()与其他next()方法连用的问题
Scanner类中的nextLine()方法与其他next()方法 例如nextInt()方法不同的是 nextLine()是以Enter,也就是回车作为结束符的当起与例如next()方法连用时 经常会出现nextLine()无法获取到字符的问题 是因为我们的上一行next()是以空格或者tal作为结尾的 而我们的Enter还在上一行的末尾没有被获取 而这时我们的nextLine()只原创 2018-01-29 18:46:12 · 728 阅读 · 0 评论 -
Java中堆栈Stack类的使用(转)
JAVA 中,使用 java.util.Stack 类的构造方法创建对象。public class Stack extends vector构造方法 : public Stack() 创建一个空 Stack。方法: 1. public push (item ) 把项 压入栈顶。其作用与 addElement (item ) 相同。参数 item 压入栈顶的项 。 返回: item 参数 ;p转载 2018-01-29 18:20:09 · 829 阅读 · 0 评论 -
Java中队列Queue类的使用(转)
java中queue的使用Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接 口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。Blocking转载 2018-01-29 18:17:52 · 5652 阅读 · 0 评论 -
Java中动态数组ArrayList类的用法(转)
1、什么是ArrayListArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小2、如何使用ArrayList最简单的例子: ArrayList List = new ArrayList(); for( int i=0;i <10;i+转载 2018-01-29 18:13:22 · 20050 阅读 · 4 评论 -
Java实现记忆化搜索
记忆化搜索 是在使用递归搜索或者类似的情况下 使用一般的递归或许需要太多的时间与内存 这时我们就可以使用记忆化搜索其本质为在递归搜索中 如果遇到了没有搜索过的 进行搜索并在内存中记录结果 如果之前搜索过 就直接调用结果题目描述对于一个递归函数w(a,b,c)如果a如果a>20 or b>20 or c>20就返回w(20,20,20)如果a其它别的情况就返原创 2018-01-29 18:04:16 · 1207 阅读 · 0 评论 -
Java实现寻找质数的优化
用任何一种语言,实现寻找一定范围内的质数都不难 使用java也不例外 但如何能够实现使用更少的内存,更快速的去找到我们需要的质数呢? 这就需要一定的算法我们知道,除了2以外的质数都是基数 因此我们可以从这里入手示例代码如下:public static boolean judgePrimeNumber(int x) { if(x == 2) { retu原创 2018-01-29 17:57:08 · 318 阅读 · 0 评论 -
Java实现选择排序
选择排序是所有排序中平均时间复杂度较小的一种排序方式 其时间复杂度为O(NlogN)因为注释比较完善,我就不多说了代码:package paixu;import java.util.Scanner;public class KuaiSuPaiXu { /* * KuaiSuPaiXu 快速排序 * by haifeng */ private stati原创 2018-01-21 15:37:22 · 191 阅读 · 0 评论 -
Java递归实现围棋提子思想
在制作围棋游戏的时候 一般来说会有两个问题围棋提子的算法思想Ai走子的算法思想由于ai走子的算法思想确实太过于难了,牵扯到深度学习的东西 这里就不进行阐述了 毕竟我也根本不会我将阐述的是围棋提子的思想 我是使用递归的思想来解决的当一名玩家下了一步棋之后,首先看这步棋的四面八方有没有不同颜色的棋子如果有,则有这个棋子的对象作为形参,开始判断他的四周为空、异色棋子或者同色棋子如果是异原创 2018-01-19 12:44:00 · 1775 阅读 · 0 评论