插入排序(Insertion Sort)
2021-04-09 17:27
标签:等于 for 比较 sort pre 技术 src 开始 插入 原理:将数组中的数据分为两个区间,已排序区间和未排序区间。初始已排序区间只有一个元素。 核心思想:取未排序区间中的元素,在已排序区间中找到合适的位置将其插入,并保证已排序区间的数据一直有序。重复这个过程,直到未排序区间中元素为空,算法结束。 算法描述: 一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下: 动画演示: java代码实现: 算法分析: 1:插入排序的时间复杂度是多少? 2:插入排序的空间复杂度是多少? 3:插入排序是稳定的排序算法吗? 插入排序(Insertion Sort) 标签:等于 for 比较 sort pre 技术 src 开始 插入 原文地址:https://www.cnblogs.com/zhoujun007/p/13373306.html插入排序(Insertion Sort)
import java.util.Arrays;
public class InsertSort {
public void InsertSorted(int[] arr){
int len = arr.length;
if(len = 0 && arr[preIndex] > current){
arr[preIndex+1] = arr[preIndex]; // 往后移
preIndex--;
}
//当前值大于preindex的值,就在preindex+1 添加值
arr[preIndex+1] = current;
}
}
@Test
public void testInsertSorted(){
int[] arr = {4,85,45,35,7,15,48,26,38,77};
System.out.println(Arrays.toString(arr));
InsertSorted(arr);
System.out.println(Arrays.toString(arr));
}
}
出现元素的后面,这样就可以保持原有的前后顺序不变,所以 插入排序是稳定的
排序算法
上一篇:Python之禅
文章标题:插入排序(Insertion Sort)
文章链接:http://soscw.com/index.php/essay/73413.html