java实现插入排序
/**插入排序的基本思想:经过i-1遍处理后,L已排好序,第i遍处理仅将L插入L* 的适当位置,使得L还是排好序的序列。具体方法用顺序比较的方法:首先比较L和L,
* 如果L<=L,则L已排好序,第i遍处理就结束;否则交换L与L的位置,继续
* 比较L和L,直到找到某一个位置j (1<=j<=j-1),使得L<=L时为止。
* 简言之,插入排序就是每一部都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部
* 插入完毕**/
import java.util.*;
public class InsertSort {
ArrayList list;
public InsertSort(int num,int mod){
list=new ArrayList(num);
Random dom=new Random();
System.out.println("排序之前的数组:");
for(int i=0;i<num;i++){
list.add(new Integer(Math.abs(dom.nextInt())%mod+1));
System.out.println("list["+i+"]="+list.get(i));
}
}
public void SortIt(){
Integer tempInt;
int MaxSize=1;
for(int i=1;i<list.size();i++){
tempInt=(Integer)list.remove(i);
if(tempInt.intValue()>=((Integer)list.get(MaxSize-1)).intValue()){
list.add(MaxSize,tempInt);
MaxSize++;
}else{
for(int j=0;j<MaxSize;j++){
if(((Integer)list.get(j)).intValue()>=tempInt.intValue()){
list.add(j,tempInt);
MaxSize++;
break;
}
}
}
}
System.out.println("排序之后的数组:");
for(int i=0;i<list.size();i++){
System.out.println("list["+i+"]"+list.get(i));
}
}
public static void main(String[] args){
InsertSort is=new InsertSort(10,100);
is.SortIt();
}
}
页:
[1]