/**
* @author upfly
* @create 2021-06-17 16:33
*/
public class InsertSort {
/**
* 直接插入排序(从小到大)
*
* @param arr
*/
public void insertSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
// 如果当前元素小于有序子序列的最大值才需进行插入,否则无需移动
if (arr[i] < arr[i - 1]) {
int temp = arr[i]; // 临时变量保存当前元素
// 移动元素 + 寻找插入位置
int j;
for (j = i - 1; j >= 0 && arr[j] > temp; j--) {
arr[j + 1] = arr[j];
}
// 复制到插入位置
arr[j + 1] = temp;
}
}
}
}
直接插入排序
最新推荐文章于 2025-03-09 23:46:07 发布