java实现插入排序

/**插入排序的基本思想:经过i-1遍处理后,L[1..i-1]已排好序,第i遍处理仅将L[i]插入L[1..i-1]
* 的适当位置,使得L[1..i]还是排好序的序列。具体方法用顺序比较的方法:首先比较L[i]和L[i-1],
* 如果L[i-1]<=L[i],则L[1..i]已排好序,第i遍处理就结束;否则交换L[i]与L[i-1]的位置,继续
* 比较L[i-1]和L[i-2],直到找到某一个位置j (1<=j<=j-1),使得L[j]<=L[j+1]时为止。
* 简言之,插入排序就是每一部都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部
* 插入完毕**/

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();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值