直接插入排序是一種最簡單的排序方法,它的基本操作是將一個記錄插入到已經牌號的有序表中,從而得到一個新的有序表。實際上,在給定的一個數組中,我們可以把第一個元素看成獨立的一個有序表,其餘的元素都是待插入的元素,通過查找插入位置,移動元素位置來實現排序。
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();
}
}