public class Permutation { //确认某一个排列的第k位 private static void f(int[] arr, int k) { if (k == 3)//全部确认 { print(arr); return; } //选定第k位, for (int i = k; i < arr.length; i++) { //将第i位和第k位交换 int t = arr[i]; arr[i] = arr[k]; arr[k] = t; // 移交下一层去确认k+1位 f(arr, k + 1); //回溯(换回来) t = arr[i]; arr[i] = arr[k]; arr[k] = t; } } private static void print(int[] arr) { for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]); } System.out.println(); } public static void main(String[] args) { // int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int[] arr = {1, 2, 3}; f(arr, 0); } }
算法-全排列
最新推荐文章于 2024-10-02 22:45:05 发布