排序算法的实验

3年半前,我做了排序算法的实验,对比的算法有如下:

  1)heapsort 堆排序

  2)mergeSort归并排序

  3)quickSort快速排序

  4)lib sort 库中的排序方法,改进的快速排序

 

采用的数据是int数值,记录时间为秒

 

记录如下:

 

  1)对于数据量很小的时候(100个元素时)

         heapsort : 0.000020
       mergeSort : 0.000198
         quickSort : 0.000065
               lib sort: 0.000057

       可以看出堆排序性能最好,归并排序性能最差。

       大约200个元素的时候快速排序和堆排序性能差不多,为最好。

       大约500个元素的时候堆排序跟归并排序快,但还是慢于快速排序

       数据量越来越大的时候,堆排序的性能就差下来

 

       分析可能原因:

             由于cpu cache的原因,小数据量的时候一般都在cache中,所以小数据量对于堆的性能是非常高的;

       数据量越大,这种情况就发生变化了,大部分数据都不是在cache中,由于访问堆不是顺序访问数值元素的,

       存在从树根到树叶的跨越或者倒过来,这样容易导致cache不命中。

 

 

  2)数据量为2000万

 

      heapsort2:15
      mergeSort:6
      quickSort:4
      lib sort:3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值