首页 > 编程语言 >【排序】各类排序算法的时间性能比较

【排序】各类排序算法的时间性能比较

时间:2022-08-19 14:59:06浏览次数:78  
标签:10 4ms 5ms tt 算法 le 各类 TLE 排序

插入排序 冒泡排序 选择排序 希尔排序 快速排序 归并排序 堆排序 计数排序 桶排序 基数排序
\(n=10^3\) 随机数据 \(a_i \le 10^5\) \(\tt 4ms\) \(\tt 7ms\) \(\tt 6ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\)
\(n=10^3\) 完全正序 \(a_i \le 10^5\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\)
\(n=10^3\) 完全倒序 \(a_i \le 10^5\) \(\tt 4ms\) \(\tt 8ms\) \(\tt 8ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\) \(\tt 4ms\)
\(n=10^4\) 随机数据 \(a_i \le 10^5\) \(\tt 80ms\) \(\tt 373ms\) \(\tt 200ms\) \(\tt 7ms\) \(\tt 6ms\) \(\tt 6ms\) \(\tt 7ms\) \(\tt 5ms\) \(\tt 8ms\) \(\tt 5ms\)
\(n=10^4\) 随机数据 \(a_i \le 10^5\) \(\tt 80ms\) \(\tt 372ms\) \(\tt 198ms\) \(\tt 7ms\) \(\tt 5ms\) \(\tt 6ms\) \(\tt 7ms\) \(\tt 5ms\) \(\tt 7ms\) \(\tt 5ms\)
\(n=10^4\) 完全正序 \(a_i \le 10^5\) \(\tt 79ms\) \(\tt 5ms\) \(\tt 4ms\) \(\tt 5ms\) \(\tt 5ms\) \(\tt 6ms\) \(\tt 6ms\) \(\tt 5ms\) \(\tt 7ms\) \(\tt 5ms\)
\(n=10^4\) 完全倒序 \(a_i \le 10^5\) \(\tt 101ms\) \(\tt 407ms\) \(\tt 394ms\) \(\tt 5ms\) \(\tt 5ms\) \(\tt 5ms\) \(\tt 7ms\) \(\tt 5ms\) \(\tt 7ms\) \(\tt 5ms\)
\(n=10^5\) 随机数据 \(a_i \le 10^6\) TLE TLE TLE \(\tt 52ms\) \(\tt 28ms\) \(\tt 29ms\) \(\tt 40ms\) \(\tt 19ms\) \(\tt 44ms\) \(\tt 22ms\)
\(n=10^6\) 随机数据 \(a_i \le 10^7\) TLE TLE TLE \(\tt 683ms\) \(\tt 275ms\) \(\tt 294ms\) \(\tt 438ms\) \(\tt 174ms\) \(\tt 517ms\) \(\tt 216ms\)
\(n=10^6\) 随机数据 \(a_i \le 10^8\) TLE TLE TLE \(\tt 726ms\) \(\tt 290ms\) \(\tt 311ms\) \(\tt 456ms\) MLE \(\tt 610ms\) \(\tt 244ms\)
总时间 \(\tt 352ms + 3 \times \tt TLE\) $\tt 1176ms + 3 \times \tt TLE $ \(\tt 814ms + 3 \times \tt TLE\) \(\tt 1497 ms\) \(\tt 626ms\) \(\tt 669ms\) \(\tt 973ms\) \(\tt 225ms + \tt MLE\) \(\tt 1212ms\) \(\tt 514ms\)

总结:当值域较小时,计数排序无疑是最佳选择,在所有 AC 的算法中时间的比较:

基数排序 \(<\) 快速排序 \(<\) 归并排序 \(<\) 堆排序 \(<\) 桶排序 \(<\) 希尔排序。

标签:10,4ms,5ms,tt,算法,le,各类,TLE,排序
From: https://www.cnblogs.com/LByte/p/16601967.html

相关文章

  • 延时任务-基于netty时间轮算法实现
    一、时间轮算法简介为了大家能够理解下文中的代码,我们先来简单了解一下netty时间轮算法的核心原理时间轮算法名副其实,时间轮就是一个环形的数据结构,类似于表盘,将时间轮......
  • 拓扑排序
    拓扑排序拓扑序列是关于有向图的拓扑序列:对于图中的每条边(x,y),x在序列A中都出现在y之前,则称A是该图的一个拓扑序列也就是说,把图中每一个点按拓扑序排好后,每一个点都......
  • 快速排序
    1.快速排序——分治#算法原理:在给定序列找到一个点x使得x左边区间数都小于x,右边区间数都大于x#步骤:确定分界点随机,可以是第一个数调整区间使左边都小于分......
  • c语言中使用冒泡排序法对数组进行排序
     001、#include<stdio.h>#defineNUMBER5voidpsort(intx[],intn){inti,j;for(i=0;i<n-1;i++)......
  • 链表反转类算法题
    反转链表类NO1.反转链表给定一个长度为n的链表,反转该链表,输出表头。方法一:迭代法(推荐使用)算法流程:step1:特殊情况判断,空链表或只有一个结点的链表,直接返回头......
  • 算法工程师需要掌握哪些核心技能点?
    一、算法工程师和其他IT从业人员的区别我想大概从事IT行业的开发人员多少对算法岗位都有所了解,但是其实很多人对这个岗位的认知存在一定的误区,或者说是被一些书籍所误导。......
  • 归并排序
    归并排序整体上是递归,左边排好序+右边排好序+merge让整体有序让其整体有序的过程里用来排外序方法利用master公式来求解时间复杂度当然可以用非递归实现例:......
  • 算法--模拟法
      方法:三次翻转(推荐使用)思路:循环右移相当于从第mmm个位置开始,左右两部分视作整体翻转。即abcdefg右移3位efgabcd可以看成AB翻转成BA(这里小写字母看成数组元素,大写......
  • go 接口 实现sort排序接口 进行自定义排序
    packagemainimport("fmt""math/rand""sort")//学生结构体typeStudentstruct{NamestringIdstringAgeint}typeStudentA......
  • 算法---二分
      classSolution{public:intfindPeakElement(vector<int>&nums){//writecodehere//题目只需要求一个峰值即可,我门可以利用二......