递归实现插入排序
上代码:
package com.demo._05递归;
import java.util.Arrays;
/**
* @create 2023/5/8 9:21
* @Desc 插入排序
**/
public class _05InsertionSort {
public static void sort(int[] a) {
insertion(a, 1);
}
private static void insertion(int[] a, int low) {
if (low == a.length) {
return;
}
int t = a[low];
// 已排序区域指针
int i = low - 1;
// 没有找到插入位置就不断循环
while (a[i] > t) {
// 空出插入位置
a[i + 1] = a[i];
i--;
}
// 找到插入位置
a[i + 1] = t;
insertion(a, low + 1);
}
public static void main(String[] args) {
int[] arr = {1,3,5,2,9,10,7,8,6,4} ;
sort(arr);
Arrays.stream(arr).forEach(i -> System.out.println(i)) ;
}
}