0
点赞
收藏
分享

微信扫一扫

还不懂基础排序算法的性能对比?这篇文章带你涨姿势


我们在这篇文章的主要任务如下:

还不懂基础排序算法的性能对比?这篇文章带你涨姿势_时间复杂度

冒泡排序

还不懂基础排序算法的性能对比?这篇文章带你涨姿势_时间复杂度_02


发现时间复杂度为O(n2)

插入排序:

考虑最坏的情况,就是数组最开始是逆序

还不懂基础排序算法的性能对比?这篇文章带你涨姿势_排序算法_03


上图中实际上是n*(n-1)/2,不过时间复杂度仍然是O(n2)

选择排序:

选择排序是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,继续放在起始位置知道未排序元素个数为0。

还不懂基础排序算法的性能对比?这篇文章带你涨姿势_时间复杂度_04


时间复杂度为O(n2)

在jdk中,我们可以直接调用Arrays.sort()来进行排序,这个排序算法实际上就是快速排序,时间复杂度为O(nlg n),远比O(n2)的复杂度要小得多,此间差距堪称天差地别。
所以平时我们平常做题,直接调用 Arrays.sort()就可以了/


举报

相关推荐

0 条评论