数据结构与算法

排序算法

2020-07-27  本文已影响0人  JuneGe2017
排序算法 时间复杂度 是否基于比较
冒泡、插入、选择 O(n2)
快排、归并 O(nlogn)
桶、计数、基数 O(n)

如何分析一个“排序算法”?

  1. 最好情况、最坏情况、平均情况时间复杂度
    第一,有些排序算法会区分,为了好对比,所以我们最好都做一下区分。第二,对于要排序的数据,有的接近有序,有的完全无序。有序度不同的数据,对于排序的执行时间肯定是有影响的,我们要知道排序算法在不同数据下的性能表现。
  2. 时间复杂度的系数、常数 、低阶
    我们知道,时间复杂度反映的是数据规模 n 很大的时候的一个增长趋势,所以它表示的时候会忽略系数、常数、低阶。但是实际的软件开发中,我们排序的可能是 10 个、100 个、1000 个这样规模很小的数据,所以,在对同一阶时间复杂度的排序算法性能对比的时候,我们就要把系数、常数、低阶也考虑进来。
  3. 比较次数和交换(或移动)次数
    基于比较的排序算法的执行过程,会涉及两种操作,一种是元素比较大小,另一种是元素交换或移动。所以,如果我们在分析排序算法的执行效率的时候,应该把比较次数和交换(或移动)次数也考虑进去。
上一篇 下一篇

猜你喜欢

热点阅读