随笔分类 -  Java算法基础

摘要:Java排序之归并排序 1. 简介 归并排序的算法是将多个有序数据表合并成一个有序数据表。如果参与合并的只有两个有序表,则成为二路合并。对于一个原始的待排序数列,往往可以通过分割的方法来归结为多路合并排序。 2. 归并排序思路 1. 将长度为n的待排序数组看做是由n个有序长度为1的数组组成 2. 将 阅读全文
posted @ 2018-06-06 12:55 scuwangjun 阅读(277) 评论(0) 推荐(0)
摘要:Java排序之计数排序 计数排序思路 计数排序适用于有明确范围的数组,比如给定一个数组,且知道所有值得范围是[m,n]。这个时候可以使用一个n m+1长度的数组,待排序的数组就可以散在这个数组上,数组的值就是当前值的个数,再经过一次遍历展开,得到的数组就有序了。 1. 新建一个长度为n m+1的临时 阅读全文
posted @ 2018-06-04 18:44 scuwangjun 阅读(431) 评论(0) 推荐(0)
摘要:数字全排列 问题描述 给一个不重复的数字数组,写一个程序,输出全排列。 比如给定数组: 输出: 解决思路 这个问题很经典,接下来尝试使用数学归纳法的思想来解决这个问题。 在中学的时候,我们就知道一个长度为n的数列有n!个排列。因为第一个数字有n种情况,第二个数字有n 1种情况,第三个数字有n 2种情 阅读全文
posted @ 2018-05-07 23:50 scuwangjun 阅读(1116) 评论(0) 推荐(0)
摘要:```java public int remainPersonNumber(int n, int m) { //输入不合法 if(n list = new LinkedList(); for(int i = 0; i 1) { index = (index + m - 1)%list.size(); list.remove(index); } ret... 阅读全文
posted @ 2018-04-16 10:12 scuwangjun 阅读(671) 评论(0) 推荐(0)