前言
上次写的博客是关于选择排序的。对于选择排序,我们都知道,无论树是否有序,都会进行二次循环,那么它的时间复杂度是比较高的。
今天所要说的插入排序,相当于是对选择排序的一种优化。
对于相对有序的树进行排序,插入排序更会有优势,但是别忘了,对于规模更大的数来说,插入排序并不是一个更好的选择,原因在于它的时间复杂度仍然为O(n)
步骤讲解
代码实现
package insertort;
public class Insert1 {
public void insertionSort(int a[] ){
for (int i = 1; i <a.length ; i++) {
for (int j = i; j >0 ; j--) {
if(a[j] < a[j-1])
swap(a,j,j-1);
else
break;
}
}
for (int i = 0; i<a.length ; i++) {
System.out.print(a[i]+" ");
}
}
private void swap(int[] x, int a, int b) {
int t = x[a];
x[a] = x[b];
x[b] = t;
}
}