- //一个泛型数组的空杯交换
- public static <T> void temp(T[] arr,int index1,int index2){
- T temp;
- temp = arr[index1];
- arr[index1] = arr[index2];
- arr[index2] = temp;
- }
- /**
- * 迭代递归
- * @param <T> 泛型
- * @param arr 泛型数组
- * @param flag 标识符,用以标识从第几个元素开始迭代递归,元素从0开始
- */
- public static <T> void sortAll(T[] arr,int flag){
- if(flag == arr.length){
- System.out.println(Arrays.toString(arr));
- }else{
- for (int i = flag; i < arr.length; i++) {
- temp(arr, i, flag);//迭代之前的空杯交换
- sortAll(arr, flag+1);//递归,将当前的标记自增
- temp(arr, i, flag);//迭代之后恢复原貌
- }
- }
- }
- //测试
- public static void main(String[] args) {
- // Integer[] arr = {1,2,2,3,4};
- Object[] arr = {'a','b','c'};
- sortAll(arr,0);
- }
- }
数组全部排序方式
最新推荐文章于 2024-07-29 23:55:20 发布