秋意阑珊318 2022-03-15 00:36 采纳率: 62.5%
浏览 21
已结题

用规定代码测排序的运行时间

怎么用下面的代码测试希尔排序法和直接插入排序发的运行时间?请指点。

package com.mj;

import java.text.SimpleDateFormat;
import java.util.Date;
 
/**
 * 测试时间效率的小工具
 */
public class Times {
    private static final SimpleDateFormat fmt = new SimpleDateFormat("HH:mm:ss.SSS");
    
    public interface Task {
        void execute();
    }
    
    public static void test(String title, Task task) {
        if (task == null) return;
        title = (title == null) ? "" : ("【" + title + "】");
        System.out.println(title);
        System.out.println("开始:" + fmt.format(new Date()));
        long begin = System.currentTimeMillis(); // 开始时间
        task.execute(); // 执行代码
        long end = System.currentTimeMillis(); // 结束时间
        System.out.println("结束:" + fmt.format(new Date()));
        double delta = (end - begin) / 1000.0; // 毫秒转换为秒
        System.out.println("耗时:" + delta + "秒");
        System.out.println("-------------------------------------");
    }
}

1.

  • 写回答

1条回答 默认 最新

  • 大鹏cool Java领域优质创作者 2022-03-15 08:19
    关注

    时间复杂度是程序在运行前人工看代码的方式评估出来的,目的是为了避免外部环境及数据对运行时统计的影响,例如不同的 CPU、内存,数据是否有序对排序的影响。
    通过代码只能统计运行的总时长,无法得到时间复杂度。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月31日
  • 已采纳回答 3月23日
  • 修改了问题 3月15日
  • 创建了问题 3月15日

悬赏问题

  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路