Java基础算法
scuwangjun
谦虚,谨慎,爱学习
展开
-
数字全排列
数字全排列问题描述给一个不重复的数字数组,写一个程序,输出全排列。比如给定数组:[1, 2, 3]输出:[1, 2, 3][1, 3, 2][2, 1, 3][2, 3, 1][3, 1, 2][3, 2, 1]解决思路这个问题很经典,接下来尝试使用数学归纳法的思想来解决这个问题。在中学的时候,我们就知道一个长度为n的数列有n!个排列。...原创 2018-05-07 23:50:01 · 3792 阅读 · 0 评论 -
Java排序之计数排序
Java排序之计数排序1. 计数排序思路计数排序适用于有明确范围的数组,比如给定一个数组,且知道所有值得范围是[m,n]。这个时候可以使用一个n-m+1长度的数组,待排序的数组就可以散在这个数组上,数组的值就是当前值的个数,再经过一次遍历展开,得到的数组就有序了。新建一个长度为n-m+1的临时数组遍历待排序数组,它的值-m作为临时数组下角标,这个位置的值加1遍历结束,临时数组...原创 2018-06-04 18:44:47 · 2267 阅读 · 0 评论 -
Java排序之归并排序
Java排序之归并排序1. 简介归并排序的算法是将多个有序数据表合并成一个有序数据表。如果参与合并的只有两个有序表,则成为二路合并。对于一个原始的待排序数列,往往可以通过分割的方法来归结为多路合并排序。2. 归并排序思路将长度为n的待排序数组看做是由n个有序长度为1的数组组成将其两两合并,得到长度为2的有序数组然后再对这些子表进行合并,得到长度为4的有序数组重复上述...原创 2018-06-06 12:55:23 · 3914 阅读 · 0 评论