/**
* 直接插入排序
* 直接插入排序属于稳定排序
* 直接插入排序空间复杂度O(1)
* 最优时间复杂度O(n),当待排序的数组已经排序好时,直接插入排序的时间复杂度为O(n)
* 最坏时间复杂度O(n^2),当待排序的数组是倒序时,直接插入排序的时间复杂度为O(n^2)
* 直接插入排序适用于数量比较少的数组排序
*
* 基本原理:
* 将一个记录插入到已排序好的有序序列中,从而得到一个新,记录数增1的有序序列。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。
*/
public class DirectInsertionSort {
public void sort(int[] arr){
int i, j, tmp;
//从i=1开始遍历,a[0]为有序序列
for(i = 1; i < arr.length; i++){
for(j = i - 1; j >= 0; j--){
if(arr[j] <= arr[j + 1]){
break;
}
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}排序算法之直接插入排序Java版
最新推荐文章于 2024-09-28 15:39:21 发布
本文深入探讨直接插入排序算法的原理、特点及其优化方法,通过简洁的代码实现,直观展示其工作流程,并分析不同场景下的时间复杂度表现。

1324

被折叠的 条评论
为什么被折叠?



