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

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

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.

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