直接插入排序是一种最简单的排序方法,它的基本操作是将一个记录插入到已经牌号的有序表中,从而得到一个新的有序表。实际上,在给定的一个数组中,我们可以把第一个元素看成独立的一个有序表,其余的元素都是待插入的元素,通过查找插入位置,移动元素位置来实现排序。
package com.bear;
public class StraightInsertion {
private int[] list = {5,4,3,1,2,8,9,10,0,7};
public static void main(String[] args) {
StraightInsertion insertion = new StraightInsertion();
insertion.visit();
insertion.sort();
insertion.visit();
}
public void sort()
{
int guard = list[0];
int i,j;
for ( i = 1; i < list.length; i++) {
if(list[i]<list[i-1])
{
guard = list[i];
for ( j = i-1; j>=0&&list[j]>guard; j--) {
list[j+1] = list[j];
}
list[j+1] = guard;
}
}
}
public void visit()
{
System.out.print("the list = ");
for (int i = 0; i < list.length; i++) {
System.out.print(list[i]+" ");
}
System.out.println();
}
}