常用的插入排序有:直接插入排序、折半插入排序、表插入排序和希尔排序
/***********直接插入排序*********************
public class InsertSort {
public static void main(String[] args)
{
int a[]=new int[]{7,5,4,3,9,9,8};
System.out.println("排序前");
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
//开始排序
int temp;
for(int i=0;i<a.length-1;i++)
{
for(int j=i+1;j>0;j--)
{
if(a[j]<a[j-1])
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
System.out.println("");
System.out.println("排序后");
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
}
}
这个方法是稳定的,且直接插入排序的时间复杂性为0(n2)。
直接插入排序算法简洁,易理解,容易实现。当序列中的记录“基本有序”或n值较小时,它是最佳的排序方法