📄 sort.java
字号:
import java.util.*;
class Sort
{
//排序前的数组
private void SortOfBefore(int a[])
{
System.out.println("数组的长度为: "+(a.length-1)+";排序前的数组为:");
for(int i=1;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
System.out.println();
}
int m_time=0;
//选择排序
private void SelectionSort(int a[])
{
Date d1=new Date();//记录该时刻d1
for(int i=1;i<a.length-1;i++)
{
int k=i;
for(int j=i+1;j<a.length;j++)
{
if(a[j]<a[k])
{
k=j;
}
m_time++;
}
if(k!=i)
{
int t=a[i];
a[i]=a[k];
a[k]=t;
}
}
System.out.println("用选择排序法排序后的数组为:");
Date d2=new Date();//记录该时刻d2
long d=d2.getTime()-d1.getTime();
for(int i=1;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
System.out.println();
System.out.print("所用时间为: "+d+"毫秒");
System.out.println();
System.out.print("比较次数为: "+m_time);
}
//插入排序
private void InsertionSort(int a[])
{
Date d1=new Date();
for(int i=1;i<=a.length-1;i++)
{
int x=a[i];
int j=i-1;
while((j>0)&&(a[j]>x))
{
a[j+1]=a[j];
j=j-1;
m_time++;
}
a[j+1]=x;
}
Date d2=new Date();
long d=d2.getTime()-d1.getTime();
System.out.println("用插入排序法排序后的数组为:");
for(int i=1;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
System.out.println();
System.out.print("所用时间为: "+d+"毫秒");
System.out.println();
System.out.print("比较次数为: "+m_time);
}
//冒泡排序
private void BubbleSort(int a[])
{
int temp;
Date d1=new Date();
for(int i=1;i<a.length;i++)
{
for(int j=a.length-1;j>i;j--)
{
if(a[j]<a[j-1])
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
m_time++;
}
}
Date d2=new Date();
long d=d2.getTime()-d1.getTime();
System.out.println("用冒泡法排序后的数组为:");
for(int i=1;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
System.out.println();
System.out.print("所用时间为: "+d+"毫秒");
System.out.println();
System.out.print("比较次数为: "+m_time);
}
public static void main(String[] args)
{
if(args.length<2)//判断输入参数的个数
{
System.out.println("输入的参数个数必须大于2");
}
int a[]=new int[args.length],p;
for(p=1;p<args.length;p++)
{
a[p]=Integer.parseInt(args[p]);
}
Sort mb=new Sort();
int b=Integer.parseInt(args[0]);
mb.SortOfBefore(a);
if(b==1)//判断用哪个排序方法来排序(1是选择排序,2是插入排序,3是冒泡排序,其他输入为错误输入)
{
mb.SelectionSort(a);
}
else if(b==2)
{
mb.InsertionSort(a);
}
else if(b==3)
{
mb.BubbleSort(a);
}
else
{
System.out.print("输入错误!");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -