// 选择排序递归调用
function selectionSortRecursive(arr, n, i = 0) {
  // 基本情况:当 i 到达数组末尾时
  if (i === n) {
    return arr;
  }

  let minIndex = i;
  // 找到未排序部分中最小元素的索引
  for (let j = i + 1; j < n; j++) {
    if (arr[j] < arr[minIndex]) {
      minIndex = j;
    }
  }

  // 将最小元素与当前元素交换位置
  const temp = arr[minIndex];
  arr[minIndex] = arr[i];
  arr[i] = temp;

  // 递归调用,对剩余数组元素进行排序
  return selectionSortRecursive(arr, n, i + 1);
}