分治算法实现对一个数进行字典全排序
2016-10-22 10:49
232 查看
package com.company.Puzzal; import java.util.Arrays; /** * Created by likailong on 2016/10/22. * 按照字典全排列 用分治法 */ class GenerateP{ private int n; // 求 1-n所有数字的全排列 private final int maxn = 110;//最多可排列组合的长度 1-100 private boolean [] hashTable; private int [] p; public GenerateP(int n) { this.n = n; hashTable = new boolean[maxn]; p = new int [maxn]; Arrays.fill(hashTable, false); Arrays.fill(p, 0); } public void generatep(int index){//用递归实现 if(index == n + 1){ for(int i = 1; i <= n; i++){ System.out.print(p[i]); } System.out.println(); return; } for(int x = 1; x <= n; x++){ if(hashTable[x] == false){ p[index] = x; hashTable[x] = true; generatep(index + 1); hashTable[x] = false; } } } } public class Fenzhi { public static void main(String[] args) {GenerateP generateP = new GenerateP(3); generateP.generatep(1); } }
相关文章推荐
- 分治算法实现对一个数进行字典全排序
- 分治算法实现对一个数进行字典全排序
- 分治算法实现对一个数进行字典全排序
- 分治算法实现对一个数进行字典全排序
- 按照字典里面某一个字段排序实现
- 编写一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可以是整形,单精度,双精度。用重载函数实现
- 实现一个算法,对公司员工年龄进行排序,时间效率要求O(n)
- 定义一个List集合并实例化对应的实现类对象。循环输入任意个整数,输入0结束输入循环,对集合中的数据进行从大到小的排序后输出
- 3. 编写一个C程序,实现对10个整数进行升序排序输出。
- 给定一个字符串数组{"nba","abc","cba","zz","qq","haha"},请按照字典顺序进行从小到大的排序。
- 使用函数指针,完成一个sort()函数,能对任何类型的数组元素进行排序: 回调函数 以及 memcpy ()原型实现
- java 给定一个字符串数组。按照字典顺序进行从小到大的排序。
- 实现一个排序算法,对0~n-1范围内的n个不重复的无序数组进行排序,时间复杂度为O(n),空间复杂度为O(1)。
- php和mysql采用utf-8编码时实现按照一个文本字段的首字母的拼音顺序进行排序的方法
- 【Python】简单例题tuple和list的转换;实现删除一个list里重复的元素;对list a进行排序,并且从最后一个开始删除重复元素
- 编程产生一个int数组,长度为30,并向其中随机插入1-30,并且不能重复输出数组。实现一个冒泡排序算法对其进行排序,输出排序结果
- 关于用C语言来实现对一个文档中的条目数字进行统计排序的实现
- 3.11 用栈实现对一个字符串按升序进行排序
- Python实现字典按照value进行排序的方法分析
- 解决Mysql数据库实现多表联合查询及按照其中一个字段进行排序问题