public class SortAlgorithm {
/**
* 冒泡排序法
* @param numlist
*/
private void bubbleSort(int[] numlist)
{
int out,in;
for(out=numlist.length-1;out>1;out--)
{
for(in=0;in<out;in++)
{
if(numlist[in]>numlist[in+1])
{
int temp=numlist[in];
numlist[in]=numlist[in+1];
numlist[in+1]=temp;
}
}
}
}
/**
* 插入排序
* @param numlist
*/
private void insertSort(int[]numlist)
{
int in,out;
for(out=1;out<numlist.length;out++)
{
int temp=numlist[out];
in=out;
while(in>0&&numlist[in-1]==temp)
{
numlist[in]=numlist[in-1];
in--;
}
numlist[in]=temp;
}
}
/**
* 选择排序
*/
private void selectionSort(int[]numlist)
{
int in,out,min;
for(out=0;out<numlist.length-1;out++)
{
min=out;
for(in=out+1;in<numlist.length;in++)
{if(numlist[in]<numlist[min])
min=in;
int temp=numlist[out];
numlist[out]=numlist[min];
numlist[min]=temp;
}
}
}
/**
* 输出数组各值
* @param numlist
*/
private void display(int[]numlist)
{
for(int i=0;i<numlist.length;i++)
{
System.out.print(numlist[i]+" ");
}
System.out.println(" ");
}
public static void main(String[] args)
{
int numlist[]=new int[]{45,167,199,-4,9,123,7,24,66,18};
System.out.print("原序为:");
SortAlgorithm sort=new SortAlgorithm();
sort.display(numlist);
long begin=System.currentTimeMillis();
sort.bubbleSort(numlist);
long end=System.currentTimeMillis();
System.out.println("冒泡排序用时为:"+(end-begin));
System.out.print("排序后:");
sort.display(numlist);
begin=System.currentTimeMillis();
sort.insertSort(numlist);
end=System.currentTimeMillis();
System.out.println("插入排序用时为:"+(end-begin));
System.out.print("排序后:");
sort.display(numlist);
begin=System.currentTimeMillis();
sort.selectionSort(numlist);
end=System.currentTimeMillis();
System.out.println("选择排序用时为:"+(end-begin));
System.out.print("排序后:");
sort.display(numlist);
}
}