- 排序:所谓排序,就是把一串有记录的数组,按照降序或者非降序进行排列(一般默认非降序)
- 稳定性:能保护排序过程中相等的数据相对顺序不变
- 稳定的排序:具备稳定性
1.插入排序(直接插入排序)
基本定义:直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一 个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列 。
具体过程:利用减治算法
每次从无序区间中选择第一个数,插入到有序的区间中的合适位置,一共需要进行size-1次(size次也可以);
确定好有序区间和无序区间的具体范围;
插入过程:每次把无序区间的第一个数,在有序区间中遍历(从后往前遍历)
1)找到合适的位置
2)搬移原有数据,为该数据腾出位置
代码如下:
//插入排序
public static void insertSort(int [] array){
for(int i=0;i<array.length-1;i++){
int key=array[i+1];
int j;
for(j=i;j>=0&&key<array