算法(Algorithms)第4版 练习 2.1.27

package com.qiusongde;

import edu.princeton.cs.algs4.StdOut;

public class Exercise2127 {

    public static void main(String[] args) {
        
        
        int T = 100;
        double previnsert = SortCompare.timeRandomInput("Insertion", 64, T);
        double prevselection = SortCompare.timeRandomInput("Selection", 64, T);
        double prevshell    = SortCompare.timeRandomInput("Shell", 64, T);
        
        StdOut.printf("%-10s %-13s %-13s %-13s\n", "N", "Insertion", "Selection", "Shell");
        int N = 128;
        while(true) {
            
            double timeinsert = SortCompare.timeRandomInput("Insertion", N, T);
            double timeselection = SortCompare.timeRandomInput("Selection", N, T);
            double timeshell = SortCompare.timeRandomInput("Shell", N, T);
            
            double ratioinsert = timeinsert/previnsert;
            double ratioselection = timeselection/prevselection;
            double ratioshell = timeshell/prevshell;
            
            StdOut.printf("%-10d %-6.3f %-6.1f %-6.3f %-6.1f %-6.3f %-6.1f\n", N, timeinsert, ratioinsert, timeselection, ratioselection, timeshell, ratioshell);
            
            N += N;
            previnsert = timeinsert;
            prevselection = timeselection;
            prevshell = timeshell;
        }
        
    }

}

 

N          Insertion     Selection     Shell        
128        0.005  0.6    0.023  3.8    0.001  0.3   
256        0.007  1.4    0.005  0.2    0.005  5.0   
512        0.026  3.7    0.025  5.0    0.005  1.0   
1024       0.113  4.3    0.084  3.4    0.015  3.0   
2048       0.463  4.1    0.331  3.9    0.028  1.9   
4096       1.880  4.1    1.317  4.0    0.069  2.5   
8192       7.605  4.0    5.251  4.0    0.161  2.3   

 

posted @ 2017-03-22 15:03  我是老邱  阅读(232)  评论(0编辑  收藏  举报