递归的选择排序java
时间: 2023-09-24 21:06:26 浏览: 48
以下是使用递归实现选择排序的 Java 代码:
```java
public class SelectionSortRecursive {
public static void main(String[] args) {
int[] arr = {5, 2, 7, 3, 9, 1};
selectionSort(arr, 0);
System.out.println(Arrays.toString(arr)); // [1, 2, 3, 5, 7, 9]
}
public static void selectionSort(int[] arr, int startIndex) {
if (startIndex == arr.length - 1) {
return;
}
int minIndex = startIndex;
for (int i = startIndex + 1; i < arr.length; i++) {
if (arr[i] < arr[minIndex]) {
minIndex = i;
}
}
int temp = arr[startIndex];
arr[startIndex] = arr[minIndex];
arr[minIndex] = temp;
selectionSort(arr, startIndex + 1);
}
}
```
在这个实现中,`startIndex` 参数表示当前要排序的子数组的起始下标。在每次递归调用中,寻找从 `startIndex` 开始的子数组中最小的元素,将其与 `startIndex` 位置的元素交换,并对剩余的子数组进行排序。递归的终止条件是 `startIndex` 达到了数组的末尾。