插入排序:
特点:稳定,相对顺序不会变,在序列基本有序的情况下,排序时间短;最差的情况应该是将序列倒序变成顺序。
时间复杂度为O(N2),最好情况比较n-1次,移动n-1次。
适用场景:小数组,数据基本有序,要求稳定。
package InsertSort;
public class InsertSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer[] array={85, 0, 63, 6, 1, 31, 0, 50,899};
int length=array.length;
//升序排列,插入排序
//特点,将第一个元素当成一个有序的,然后后面的元素与其比较来进行插入
for(int out=1;out<length;out++){
//等待被插入
int temp=array[out];
//查找插入的位置
int in=out;
//移动位置
while(in>0&&temp>array[in-1]){
array[in]=array[in-1];
in--;
}
//插入该位置
array[in]=temp;
}
for(int a:array){
System.out.println(a);
}
}
}