算法,java
文章平均质量分 85
qq_32216775
这个作者很懒,什么都没留下…
展开
-
列举全排列的递归算法的java代码实现
在很多情况下,我们需要使用程序列举出一个数组或一个字符串中所有元素的全排列,一种最简单易懂的全排列算法就是递归算法,其算法思想如下: 1、想要得到一个n个元素的全排列,只需要先拿出第一个元素,把剩下的元素全排列,得到 (n-1)! 个排列。 2、再把第一个元素分别放在剩下的n-1个元素所形成的n个空格中(包括两端),于是得到 n*(n-1)!=n! 个排列。 3、递归出口是n=1,那原创 2017-05-07 19:22:01 · 1042 阅读 · 0 评论 -
java socket 实现c/s文件上传下载功能+注册登录
使用JAVA SOCKET实现c/s结构的通信程序,以实现客户端向服务器端的文件的上传以及服务器端向客户端的文件的下载。 实现思路: 1、在服务器端,创建SocketServer对象,监听某一端口,有连接请求则开一个线程处理这一请求 2、在客户端,根据服务器的ip地址以及端口号,创建socket连接,并通过此连接传送数据以及信号 实现效果: ①首先打开服务器程序:原创 2017-12-16 17:28:13 · 2839 阅读 · 0 评论 -
寻找最近点对算法
寻找最近点对算法一般而言需要O(n^2)的时间复杂度,即枚举法,分别计算每两个点对之间的距离,取最小。但是还有一种分治算法理论上可以将时间复杂度减小到O(n.log n)的级别。但是由于递归的开销,可能效果并不一定好,具体还要看问题特点。算法描述:①若问题规模小于3,直接枚举法求解。②否则,将点集按照x坐标排序,取中间点。③以中间点的xm坐标为边界,左右分别递归求解,得到左右最短距离④取左右两边递...原创 2018-03-27 11:08:48 · 5592 阅读 · 0 评论 -
大整数乘法算法
刷笔试题的时候遇到了一个大整数乘法的问题,做法就是模拟手工算法,只要注意不能用long来存储,而要使用string。其中还有一些细节需要注意,例如进位,正负号等。代码如下:public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { ...原创 2018-03-27 11:09:32 · 761 阅读 · 0 评论 -
回溯法求解数独问题的思路和代码
在刷题的时候遇到了一个求解数独的问题,用回溯法写了以下代码,记录一下,之后探究有没有更好的算法。算法思路:①读取待求解数组,其中待填位置为0。②将所有待填位置的两个坐标(行列)和目前数字封装起来压入栈1中。③开一个栈2用于存储目前确定的答案。④当栈1不为空的时候,取栈顶元素,从元素当前值加一开始依次到9判断是否可以填入,若可以则将当前元素压入栈2,否则压回栈1并且取出栈2栈顶元素押回栈1;⑤重复④...原创 2018-03-27 11:10:57 · 1740 阅读 · 0 评论