用从命令行输入整数数据的方式,写一个整数的排序算法。 15

用从命令行输入整数数据的方式,写一个整数的排序算法。要求:1至少三种排序算法,使用命令行第一个参数切换。2显示排序后的结果,并显示排序操作所消耗的时间(毫秒数),比较次数... 用从命令行输入整数数据的方式,写一个整数的排序算法。
要求:1 至少三种排序算法,使用命令行第一个参数切换。
2 显示排序后的结果,并显示排序操作所消耗的时间(毫秒数),比较次数,交换次数,移动次数。
字符串转化为整数的可以使用Integer.parseInt(String s)进行
时间计数可使用java.util包中的pubic long Date.currentTimeMillis()返回一个从1970年1月1日零时到目前时刻所走过的毫秒数来计算。
请问这个怎么做?
用不了噢。
展开
 我来答
牛反省
2008-03-21
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
//用从命令行输入数据的方式,写一个整数的排序算法。
//提示:字符串转化为整数的可以使用Integer.parseInt(String s)进行

import java.util.*;
public class st3
{
public static void main(String args[])
{
int t,a,b,i,x=0;

int y=0,y2=0;
int n;
int m;
n=args.length;
int[] c=new int[n];

for(i=0;i<n;i++)
c[i]=Integer.parseInt(args[i]);
x=c[0];

long start=0,end=0,T=0;
start=System.currentTimeMillis();

switch (x)
{
case 1: //冒泡排序法
for(a=1;a<n;a++)//数组是从0到N-1的,不能为N,否则出现越界
for(b=a+1;b<n;b++)
if(c[a]>c[b]){t=c[a];c[a]=c[b];c[b]=t;y++;y2=3*y;}
break;

case 2: //直接插入排序
for(a=2;a<n;a++)
{ m=c[a];
b=a-1;
while(m<c[b])
{c[b+1]=c[b--];y++;}
c[b+1]=m;
}
y2=3*y;
break;

case 3:
for(a=1;a<n;a++)
{
b=a;
for(i=a+1;i<n;i++)
if(c[i]<c[b])
b=i;
if(b!=a)
{m=c[a];c[a]=c[b];c[b]=m;y++;y2=3*y;}
}
break;
}
end=System.currentTimeMillis();
T=end-start;
for(i=1;i<n;i++)
System.out.print(c[i]+" ");

System.out.println(" ");
System.out.println("时间是"+" "+T);
System.out.println("排序交换次数"+" "+y);
System.out.print("排序移动次数"+" "+y2);

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式