找变化:对k-1个元素进行排序 变量k
找重复:求k的排序 先求k-1的排序
找边界:当k == 0 时 返回
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int[] arr = new int[n];
for(int i =0;i<n;i++){
arr[i] = input.nextInt();
}
dfs(arr,arr.length-1);
System.out.println(Arrays.toString(arr));
}
static void dfs(int[] arr, int k){
if(k ==0)return;
dfs(arr,k-1);
int index = k-1;
int num = arr[k];
while (index>=0 && num<=arr[index]){
arr[index+1] = arr[index];
index--;
}
arr[index+1] = num;
}
}
5
12 2135 15 15 1
[1, 12, 15, 15, 2135]