这篇是插入排序算法!
代码如下:
class ArrayIns
{
private long[] a;
private int nElems;
public ArrayIns(int maxSize){
a = new long[maxSize];
nElems = 0;
}
public void insert(long value){
a[nElems] = value;
nElems++;
}
public boolean find(long searchKey){
int j;
for(j = 0;j < nElems;j++){
if(a[j] == searchKey)
break;
}
if(j == nElems){
return false;
}else{
return true;
}
}
public boolean delete(long value){
int j;
for(j = 0;j < nElems;j++){
if(value == a[j])
break;
}
if(j == nElems){
return false;
}else{
for(int k = j;k < nElems;k++)
a[k] = a[k + 1];
nElems--;
return true;
}
}
public void display(){
for(int j = 0;j < nElems;j++)
System.out.print(a[j]+" ");
System.out.println("");
}
public void insertSort(){
int in,out;
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;
}
}
}
public class InsertSortApp
{
public static void main(String[] args){
int maxSize = 100;
ArrayIns arr;
arr = new ArrayIns(maxSize);
arr.insert(77);
arr.insert(99);
arr.insert(44);
arr.insert(55);
arr.insert(22);
arr.insert(88);
arr.insert(11);
arr.insert(00);
arr.insert(66);
arr.insert(33);
arr.display();
arr.insertSort();
arr.display();
arr.delete(99);
arr.delete(00);
arr.delete(55);
arr.display();
}
}
运行结果如图所示: