`
wangyun
  • 浏览: 120863 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

全排序

阅读更多
全排序编程思想:轮流使数组中的元素放于数组的一个位置,并对数组剩余的数组元素进行全排序以形成递归。

方法介绍:

/**
*  数组元素全排序
*  全排列思想:轮流使数组中的元素放于数组的一个位置,并对数组剩余的数组元素进行全排序以形成递归
*  @param array 数组
*  @param offset 数组全排列的开始位置
*  @param isRepeat 是否重复排序
*/
public static List arrange(int[] array, int offset, boolean isRepeat) {
List list = new ArrayList();
if(!isRepeat)
list.add(Arrays.toString(array));


//递归结束条件,即开始全排列的位置为数组最后一个
if(offset == array.length - 1)    
return list;

for(int i = offset; i < array.length; i++) {
rotate(array, offset);
list.addAll(arrange(array, offset + 1, i == array.length-1));
}

return list;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics