归并排序算法执行速度测试 [数据结构][Java]

归并排序执行速度测试

我们先创建一个长度为8000000的随机值数组,通过对这个随机值数组的排序来测试我们的归并排序算法的执行速度(代码如下:)
package com.ffyc.util.arraysortspeedtest;

import com.ffyc.util.ArraySort;

import java.text.SimpleDateFormat;
import java.util.Date;

public class MargeSortSpeedTest {
    public static void main(String[] args) {
        //创建一个长度为8000000的数组
        int [] arr = new int[8000000];

        //向数组中每个位置赋上随机值
        for (int i = 0; i < 8000000; i++) {
            arr[i] = (int)(Math.random()*8000000);
        }

        //创建一个临时数组 ---> 因为我们在归并排序的过程中需要使用到临时数组,创建的这个临时数组的大小要等于或者大于我们的
        //待排序数组的大小,我们一般最后就是创建一个大小和我们的待排序数组相同大小的数组
        int [] temp = new int[arr.length];

        //生成一个数组排序前的Date对象
        Date date1 = new Date();//默认是创建当前时间下的Date对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String date1Str = sdf.format(date1);
        System.out.println("排序前的时间是: " + date1Str);

        //调用我们的归并排序算法
        ArraySort.margeSort(arr,0,arr.length-1,temp);

        //生成一个数组排序后的Date类的对象
        Date date2 = new Date();
        String date2Str = sdf.format(date2);
        System.out.println("排序后的时间是: " + date2Str);
    }
}
  • 我们的归并排序算法执行长度为8000000的随机值数组的排序使用的时间大概是1-2秒,和我们的快速排序的速度差不多
    • 其实我还测试了执行长度为八千万的随机值数组的排序,归并排序和快速排序使用的时间也都大概是13秒
      • 所以说我们的归并排序执行速度其实是和快速排序差不多的
结论: 归并排序 和 快速排序 > 希尔排序 > 直接插入排序 > 选择排序 > 冒泡排序
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值