zoukankan      html  css  js  c++  java
  • 排序算法 之 效率测试

    前面我们写了常见的几种排序算法,并分析了各种算法的实现思想,及时间复杂度等情况,但由于只是分析,木有实际的数据做对比测试,所以对各个算法的效率也没有一个明确的概念,下面我们就通过具体的测试来看看同算法之间的效率差距。

    声明11个长度为100的元素取值范围为0到1000的序列

    
    
    int length = 100;
    int[] testArray1 = new int[length];
    int[] testArray2 = new int[length];
    int[] testArray3 = new int[length];
    int[] testArray4 = new int[length];
    int[] testArray5 = new int[length];
    int[] testArray6 = new int[length];
    int[] testArray7 = new int[length];
    int[] testArray8 = new int[length];
    int[] testArray9 = new int[length];
    int[] testArray10 = new int[length];
    int[] testArray11 = new int[length];
    Random random = new Random();
    
    for (int i = 0; i < length; i++)
    {
        int temp = random.Next(0,1000);
        testArray1[i] = temp;
        testArray2[i] = temp;
        testArray3[i] = temp;
        testArray4[i] = temp;
        testArray5[i] = temp;
        testArray6[i] = temp;
        testArray7[i] = temp;
        testArray8[i] = temp;
        testArray9[i] = temp;
        testArray10[i] = temp;
        testArray11[i] = temp;
    }

    运行测试,测试结果截图:

    1

    乍一看,几种算法之间效率好像木有差别,设置前几种时间复杂度比较高的算法还要快一点。别急,让我们增加序列中的元素数量再试一下,把length =100改为length =1000再次运行测试,结果截图:

    2

    结果已经可以看出,时间复杂度低的算法是领先的,但效果好像不太明显。让我们把把length =1000改为length =10000再次运行测试,测试结果截图:

    3

    这次测试结果已经有了质的改变,相信通过测试大家对不同时间复杂度算法之间的效率已经有了一个清晰的概念。

  • 相关阅读:
    超越自我的事
    ENVI/SARscape软件概述及安装
    《万万没想到:用理工科思维理解世界》读书简记
    Ruby on Rails 搭建环境 (ubuntu)
    拓荒者
    Rails 画类图的几个方法
    ERROR: Error installing mysql2: ERROR: Failed to build gem native extension [@Ubuntu 15.04]
    无题20150105
    关于Unity中Camera的Aspect
    Esfog_UnityShader教程_逐帧动画
  • 原文地址:https://www.cnblogs.com/liukemng/p/3724099.html
Copyright © 2011-2022 走看看