插入排序的基本思想:
是将一个记录插入到已经排好序的有序表中,从而形成一个新的、记录数增1的有序表。
插入排序的工作方式像许多人玩扑克牌。我们从拿到第二张牌开始,就要和已拿到的牌作比较,并将拿到的牌插入到正确的位置,最后变成一副排序好的牌。
例如:
现在总结上述计算过程中的规律:
所以推出直接插入排序的伪代码
java实现直接插入排序的代码如下:
class InsertionSortDemo
{
public static void insertionSort(int a[])//定义插入排序函数
{
int key;
int i;
for(int j=1;j<a.length;j++)
{
key=a[j];
i=j-1;
while(i>=0&&a[i]>key)
{
a[i+1]=a[i];
i=i-1;
}
a[i+1]=key;
}
}
public static void main(String[] args)
{
int[] a={4,3,2,1};
insertionSort(a);//调用直接插入排序方法
System.out.println("对数组 a[4,3,2,1] 进行直接插入排序的结果如下:");
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
System.out.println("\n");//换行
}
}
如果分析的有什么不足的地方,希望大家可以在评论区内指出。