作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/
package org.bupt.test;
import java.util.ArrayList;
class MyResource {
ArrayList<Integer> arrList= new ArrayList();
public MyResource(ArrayList<Integer> arrList) {
this.arrList = arrList;
}
public void insertionSort() {
int j;
/*将数组向右平移一位,留出arrList[0],用作哨兵*/
arrList.add(arrList.get(arrList.size()-1));
for (j = arrList.size()-1; j>0;j--) {
arrList.set(j, arrList.get(j-1));
}
for (int i = 1; i < arrList.size(); i++) {
if (arrList.get(i)<arrList.get(i-1)) {
arrList.set(0, arrList.get(i)) ;
/*在查找循环中"监视"下标变量j是否越界。一旦越界(即j=0),因为arrList[0]和自己比较,循环判定条件不成立使得查找循环结束,
* 从而避免了在该循环内的每一次均要检测j是否越界(即省略了循环判定条件"j>=1")。 */
for (j = i-1; arrList.get(0) < arrList.get(j); j--) {
arrList.set(j+1, arrList.get(j));
}
arrList.set(j+1, arrList.get(0));
}
}
}
public void printOut() {
for (int i = 1; i < 10; i++) {
System.out.print(arrList.get(i)+" ");
}
}
}
public class Main {
public static void main(String args[]) throws Exception {
ArrayList<Integer> arrList = new ArrayList(10);
for (int i = 0; i < 9; i++) {
arrList.add(new Integer((int) (Math.random()*100)));
System.out.print(arrList.get(i)+" ");
}
System.out.println("");
MyResource mtMyResource = new MyResource(arrList);
mtMyResource.insertionSort();
mtMyResource.printOut();
}
}