笔试编程-全排序
对给定数组数据,进行全排序
/**
* 全排列
* @param data
* @param arr
* @param start
* @param end
*/
public static void fullSort(List<Integer[]> data,int[] arr, int start, int end) {
// 递归终止条件
if (start == end) {
Integer[] item = new Integer[end];
for (int i = 0;i<arr.length;i++) {
item[i]=arr[i];
System.out.print(arr[i]);
}
System.out.println();
data.add(item);
return;
}
for (int i = start; i <= end; i++) {
swap(arr, i, start);
fullSort(data,arr, start + 1, end);
swap(arr, i, start);
}
}
private static void swap(int[] arr, int i, int j) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
本文深入讲解了全排列算法的实现,通过递归方法对给定数组进行全排序,详细解释了算法的工作原理,并提供了具体代码示例。
521

被折叠的 条评论
为什么被折叠?



