【排序】2.插入排序
在一个有序的序列中,插入新的数据,用到的排序方法
每步将一个待排序的记录,按关键码值的大小插入前面一排序好的文件的适当位置上,直到全部插完为止
分类:直接插入排序
折半插入排序:将直接插入排序寻找插入位置的方法改为折半比较,经过一次比较,可以排除一
半记录,将可能的插入区间减小了一半
希尔排序:分组后的排序通常采用直接插入法
今天只写直接插入排序,直接插入排序对基本有序的数组排序效率很高
public static void selectsort(int a[]){ if(a==null||a.length<2){ return; } for (int i = 1; i < a.length; i++) { for (int j = i; j > 0; j--) {//内循环逐渐将待排数据插入已排记录 if(a[j]>a[j-1]){ int n=a[j]; a[j]=a[j-1]; a[j-1]=n; } } } }
是一种稳定的排序算法
时间复杂度:O(n2)
空间复杂度:O(1)