快速排序算法效率测试 [数据结构][Java]

这篇博客通过创建一个8000000长度的随机数组,测试了快速排序算法的执行速度,大约需要1-2秒。文章还对比了快速排序、希尔排序、直接插入排序、选择排序和冒泡排序的效率,指出在平均情况下,快速排序的效率通常高于其他四种排序算法,它们的时间复杂度分别为O(nlogn)和O(n^2)。
摘要由CSDN通过智能技术生成

快速排序算法的速度测试

我们创建一个长度为8000000的随机值数组,通过对这个随机值数组的排序的过程来分析我们的快速排序的执行速度(代码如下:)
package com.ffyc.util.arraysortspeedtest;

import com.ffyc.util.ArraySort;

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

public class QuickSortSpeedTest {
    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);
        }

        //生成一个数组排序前的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.quickSort(arr,0,arr.length-1);

        //生成一个数组排序后的Date类的对象
        Date date2 = new Date();
        String date2Str = sdf.format(date2);
        System.out.println("排序后的时间是: " + date2Str);
    }
}
  • 我们执行快速排序算法对8000000长度的随机值数组的排序大概需要: 1 -2 秒左右的时间
快速排序算法和希尔排序和直接插入排序和选择排序和冒泡排序算法的算法效率比较:
  • 我们的快速排序的时间复杂度和希尔排序的时间复杂度都是O(n logn),而直接插入排序和选择排序和冒泡排序算法的时间复杂度都是O(n2)
一般情况之下:

快速排序 > 希尔排序 > 直接插入排序 > 选择排序 > 冒泡排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值