全排序
思路:
通过递归,求出每一个位置上所有可能的值
//其中nums是要全排序的数组,
k代表这当前需要确认第k位上的值(k从0开始)
fun(int[] nums,int k)
public static void fun(int[] nums,int k){
if(k==nums.length) {//k已经递归到最后一位
//已经得到排序后的数组,输出
for (int i : nums) {
System.out.print(i+" ");
}
return;//跳出递归
}
/*
* 通过for循环,计算第k位上所有可能的情况
*/
for (int i = k; i < nums.length; i++) {
//交换数据
int temp=nums[k];
nums[k]=nums[i];
nums[i]=temp;
//将交换后的数组,这种排序进行下一位的排序
fun(nums,k+1);
//将数据交换回来。防止可能会影响下面的排序
temp=nums[k];
nums[k]=nums[i];
nums[i]=temp;
}
}