数据的全排列
我所实现的是对数组内的数据进行全排序,首先输入需要排序的内容数量,然后存入Object数组中,对数组内的所有的内容全排。
输入样例:
3
y r s
结果:
yrs
ysr
rys
rsy
sry
syr
完整代码如下:
package demo.yrs;
import java.util.Scanner;
public class AllSort {
// 数据的全排列
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
Object[] arr = new Object[number];
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.next();
}
//调用方法 参数(排序数组,开始位置,结束位置)
allSort(arr,0,arr.length-1);
}
public static void allSort(Object[] arr,int start,int end){
//结束 排序完成
if(start == end) {
//打印
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
System.out.println();
}
else {
for (int i = start; i <= end; i++) {
//交换
swap(arr,i,start);
//递归 排序后面内容
allSort(arr,start+1,end);
//交换回来
swap(arr,start,i);
}
}
}
public static void swap(Object[] arr,int i,int j) {
Object temp = arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}