输出五个随机数,并计算程序运行时间
工作环境:公司新配置的电脑,啥也没有,装了个idea、jdk、mysql就搞起来了,闲来无事,写个简单的程序开发下大脑
需求描述:利用Math.random()输出五个不重复的随机整数,并计算程序的运行时间(后面自己加的)
贴代码
package com.cold.know.Ju;
import java.text.SimpleDateFormat;
import java.util.Date;
public class algorithm {
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String start = format.format(date);
System.out.println(start);
//计算时间(开始时间)
Long startTime = System.currentTimeMillis();
long startTime1 = System.nanoTime(); //获取开始时间
//输出五个不重复的随机数
int[] arr = new int[5];
/*
* 思维分解1:先输出五个数*/
for (int i=0;i<5;i++){
int r = (int)(Math.random()*100);
boolean info = true;
for(int j=0;j<i;j++){
if(r==arr[j]){
info = false;
i--;
break;
}
}
if(info){
arr[i] = r;
System.out.println(r);
}
}
//计算时间(结束时间)
Long endTime = System.currentTimeMillis();
System.out.println("程序运行耗时:"+(endTime-startTime)+"ms");
long endTime1 = System.nanoTime(); //获取开始时间
System.out.println("程序运行时间: "+(endTime1-startTime1)+"ns");
}
}
尴尬,由于比较懒,给贴全了,但是没关系,更加全面了
这里有个问题,就是计算时间这块,也不知道自己咋想的,直接就SimpleDateFormat(手动滑稽),写到这才反应过来。。。
这里计算程序的运行时间应该使用System.currentTimeMillis(),利用endTime-startTime就可计算出时间,测试得知这个简单的程序毫秒是算不出来这个时间的,得用比他还小的纳秒。
下面是运行时候的截图
得,贴下时间转换好吧(别问我这个时间转换哪来的,问就是不知道)
秒,时间单位,符号s(英语:second):
0.000 000 001 毫秒 = 1皮秒
0.000 001 毫秒 = 1纳秒
0.001 毫秒 = 1微秒
1毫秒=0.001秒
60秒=1分钟
60分钟=1小时
24小时=1天
7天=1星期
30,31,28或29天=1月
12月=1年
100年=1世纪。
微秒,时间单位,符号μs(英语:microsecond ):1秒的百万分之一(10-6秒)
0.000 001 微秒 = 1皮秒
0.001 微秒 = 1纳秒
1,000 微秒 = 1毫秒
1,000,000 微秒 = 1秒
纳秒,时间单位,符号ns(英语nanosecond):1秒的10亿分之一。常用作内存读写速度的单位,其前面数字越小表示速度越快。
毫秒,时间单位,符号ms(英语:millisecond ):1秒的千分之一(10-3秒)
0.000 000 001 毫秒 = 1皮秒
0.000 001 毫秒 = 1纳秒
0.001 毫秒 = 1微秒
1000 毫秒 = 1秒