日期:2014-05-20  浏览次数:20677 次

下面两段代码哪一段的执行效率高?
这两段代码都是关于数组的,可以自定义数组的容量和最大值,第一段是书上的范例,我觉得它写的太复杂了,没必要写的这么难,还用了两个循环和两个数组。下面一段是我自己改写的,除了请大家对比一下执行效率,我还想请教一下第一段代码的斜体字部分怎么理解。
import java.util.*;
import javax.swing.*;
public class LotteryDrawing{
public static void main(String ad[]){
String input= JOptionPane.showInputDialog("How many numbers do you need to draw");
int k= Integer.parseInt(input);
input= JOptionPane.showInputDialog("What is the highest number you can draw");
int n=Integer.parseInt(input);
int numbers[]=new int[n];
for(int i=1;i<numbers.length;i++)numbers=i+1;
int result[]=new int[k];

[i]for(int i=1;i<result.length;i++){
int r = (int)(Math.random()*n);
result[i]=numbers[r];
numbers[r]= numbers[n-1];
n--;
}

Arrays.sort(result);
System.out.println("B T F C.");
for(int i=0;i<result.length;i++)System.out.print(result[i]+",");
System.exit(0);
}
}

代码二:
import java.util.*;
import javax.swing.*;

public class LDrawing{
 public static void main(String ags[]){
  String input= JOptionPane.showInputDialog("How many numbers do you need to draw?");
  int k=Integer.parseInt(input);
  input= JOptionPane.showInputDialog("What is the highest number you can draw?");
  int t=Integer.parseInt(input);
  int a[]=new int[k];
  for(int i=0;i<a.length;i++){
  int r=(int)(Math.random()*t);
  a[i]=r;
  System.out.print(r+",");
  }
  System.out.println();
  Arrays.sort(a);
  System.out.println("Arrays.sort'suse:");
  for(int i=0;i<a.length;i++){System.out.print(a[i]+",");}
  } 
}


------解决方案--------------------
不用看这些代码,你可以测试一下就知道了,在执行前打印System.out.println("毫秒时间");
执行后在打印一遍,两边的时间相减,你就得到了执行时间。
两个程序使用以上方法都试验下,就知道哪个快喽
------解决方案--------------------
完成的功能不同啊,上面程序是互不相同的随机数,
下面的程序是可以相同的随机数。