package sort; /* * 插入排序的非递归算法 */ public class UnRecursionInsertionSort { static int a[] = {2,5,1,3,9,4,6,8,7}; int temp; public void sort(){ for(int i=1;i<a.length;i++){//i表示插入元素,从第2个元素到最后一个元素 int j = i-1; temp = a[i]; //保存待插入元素a[i]的值 while(j>=0&&temp<a[j]){ //这里"j>=0"跟a[i]<a[j]的顺序不能调换 a[j+1] = a[j]; //把大于a[i]的元素往后移 j--; } a[j+1] = temp; } } public void Init(){ System.out.println("排序前:"); for(int i=0;i<a.length;i++){ System.out.print(a[i]+" "); } } public void display(){ System.out.println("/n/n排序后:"); for(int i=0;i<a.length;i++){ System.out.print(a[i]+" "); } } public static void main(String[] args) { UnRecursionInsertionSort is = new UnRecursionInsertionSort(); is.Init(); is.sort(); is.display(); } }