直接插入排序基本思想是每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。
package suanfa;
public class Insert {
public static void main(String[] args) {
int i,j,k,temp,len;
int[] a={13,11,7,14,9};
len=a.length;
System.out.println("排序前:");
for(i=0;i<len;i++)
{
System.out.print(a[i]+",");
}
System.out.println();
System.out.println("排序后:");
for(i=1;i<len;i++) //外循环,确定第i个数需要插入
{
for(j=i;j>0&&less(a[j],a[j-1]);j--) //内循环 确定j 从i开始递减 和前一个数比较,较小的前移交换位置,直到j=0.
{
exch(a,j,j-1);
}
}
for(i=0;i<len;i++)
{
System.out.print(a[i]+",");
}
}
static boolean less(int a,int b)
{
return a<b;
}
static void exch(int[] a,int i,int j){
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}