简单排序算法中速度比较快的一个算法。
class ArrayIns{
private long[]a; //封装long类型数组a[]
private int nElems; //数据量
public ArrayIns(int max){ //构造
a=new long[max]; //创建一个数组
nElems=0; //初始为空
}
//将元素添加到数组中
public void insert(long value){
a[nElems]=value;
nElems++;
}
//显示数组内容
public void display(){
for(int j=0;j<nElems;j++) //显示每个元素
System.out.print(a[j]+" "); //打印数据
System.out.println(" ");
}
//插入排序主代码
public void insertionSort(){
int out, in;
for (out=1; out<nElems;out++){ //外循环,从最左端开始放
long temp=a[out];
in = out;
while(in>0&&a[in-1]>=temp){
a[in]=a[in-1];
--in;
}
a[in]=temp; //插入标记项
}
}
//swap方法交换(最好写到程序内部,减少调用)
private void swap(int one,int two){
long temp=a[one];
a[one]=a[two];
a[two]=temp;
}
}
class InsertSortApp{
public static void main(String[] args){
int maxSize=100; //数组大小
ArrayIns arr; //涉及到的数组
arr=new ArrayIns(maxSize); //创建数组
//向数组添加数据
arr.insert(77);
arr.insert(42);
arr.insert(85);
arr.insert(12);
arr.insert(69);
arr.insert(98);
arr.insert(23);
//数组打印
arr.display();
//将数组中数据排序
arr.insertionSort();
//再次打印数组数据
arr.display();
}
}