`
abc778201
  • 浏览: 9204 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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();
}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics