91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java全排列用遞歸怎么實現

小億
115
2023-08-11 10:48:43
欄目: 編程語言

要實現全排列的遞歸算法,可以按照以下步驟進行:

  1. 定義一個遞歸函數,傳入當前需要排列的數組、起始索引和結束索引。

  2. 當起始索引等于結束索引時,表示已經遍歷到數組的最后一個元素,此時輸出當前排列結果。

  3. 否則,通過循環將當前需要排列的數組中的每個元素與起始索引進行交換,然后遞歸調用函數,將起始索引加1,繼續進行下一輪的排列。

  4. 在遞歸函數內,每次遞歸都會產生一個新的排列,當遞歸返回時,需要將交換過的元素交換回來,以保持數組的原始順序。

以下是Java代碼實現:

import java.util.Arrays;
public class Permutation {
public static void permutation(int[] nums, int start, int end) {
if (start == end) {
System.out.println(Arrays.toString(nums));
} else {
for (int i = start; i <= end; i++) {
swap(nums, start, i); // 將當前元素與起始索引交換
permutation(nums, start + 1, end); // 遞歸調用,起始索引加1
swap(nums, start, i); // 將交換過的元素交換回來
}
}
}
public static void swap(int[] nums, int i, int j) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
public static void main(String[] args) {
int[] nums = {1, 2, 3};
permutation(nums, 0, nums.length - 1);
}
}

運行以上代碼,將會輸出全排列的結果:

[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 2, 1]
[3, 1, 2]

0
双辽市| 洛浦县| 石门县| 拜泉县| 右玉县| 呈贡县| 犍为县| 乌拉特前旗| 左权县| 新余市| 大连市| 色达县| 九江县| 尉犁县| 梅河口市| 邵东县| 瓮安县| 万荣县| 宜良县| 广宗县| 蒙山县| 龙海市| 涡阳县| 柘城县| 临颍县| 潼南县| 晋城| 莎车县| 共和县| 京山县| 讷河市| 枣强县| 错那县| 武穴市| 沙河市| 利津县| 长治市| 夏邑县| 大邑县| 华阴市| 磴口县|