请问如何设置程序运行1s,看看在不同的时间复杂度上能操作多少N
1条回答 默认 最新
- bingbingyihao 2023-03-03 23:03关注
回答:直接模拟运行,把程序运行所花费的时间给输出一下,然后从10000开始,对比O(logN)、O(N)、O(N*logN)、O(N^2)、O(n^3)等;这样可以让你产生一个区间范围,大概就可以估计出来一秒钟可以执行多少次指令;
示例:package code; /** * @author bbyh * @date 2023/3/3 0003 13:07 * @description */ public class Test { private static final int COUNT = 10000000; public static void main(String[] args) { testN(); testN2(); } private static void testN2() { long start = System.currentTimeMillis(); double k = 0; for (int i = 0; i < COUNT; i++) { for (int j = 0; j < COUNT; j++) { k = 2 * i + 1; } } long end = System.currentTimeMillis(); System.out.println(end - start); System.out.println("k: " + k); } private static void testN() { long start = System.currentTimeMillis(); int k = 0; for (int i = 0; i < COUNT; i++) { k = 2 * i + 1; } long end = System.currentTimeMillis(); System.out.println(end - start); System.out.println("k: " + k); } }
但实际会遇到的一个问题就是,编译器会对指令进行优化,所以你需要设计一个较为复杂的计算,这样才可以体现出来算法的差距
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 目详情-五一模拟赛详情页
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?
- ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
- ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
- ¥15 cmd cl 0x000007b
- ¥20 BAPI_PR_CHANGE how to add account assignment information for service line