package com.itjob.algorithm;

import java.util.*;

/**
 * 第5章 数据结构与算法
 * 考题：请使用插入排序算法实现功能：随机生成0到100的指定位数字，并使用插入排序算法对其进行排序
 * @author AmigoXie
 */
class InsertSortTest {
	ArrayList al;
	public InsertSortTest(int num, int mod) {
		al = new ArrayList(num);
		Random rand = new Random(1);
		for (int i = 0; i < num; i++) {
			al.add(new Integer(Math.abs(rand.nextInt()) % mod + 1));
		}
	}

	public void SortIt() {
		Integer tempInt;
		int MaxSize = 1;
		for (int i = 1; i < al.size(); i++) {
			tempInt = (Integer) al.remove(i);
			if (tempInt.intValue() >= ((Integer) al.get(MaxSize - 1))
					.intValue()) {
				al.add(MaxSize, tempInt);
				MaxSize++;
				System.out.println(al.toString());
			} else {
				for (int j = 0; j < MaxSize; j++) {
					if (((Integer) al.get(j)).intValue() >= tempInt.intValue()) {
						al.add(j, tempInt);
						MaxSize++;
						System.out.println(al.toString());
						break;
					}
				}
			}
		}
	}

	public static void main(String[] args) {
		InsertSortTest is = new InsertSortTest(10, 100);
		is.SortIt();
	}
}
