排序算法

在计算机科学中,排序算法 是指一种能将序列按照特定顺序排列的算法。

在软件开发过程中,数据排序场景几乎无处不在。很多面试官也经常通过排序算法,来考察候选人的编程功底。因此,排序算法非常重要,每个软件研发工程师都应该熟练掌握。

顺序

根据排列顺序不同,排序可以分为:

  • 升序ascending ),从小到大排列;
  • 降序descending ),从大到小排列;

稳定性

常用排序算法

算法名称英文名称稳定性空间复杂度时间复杂度
最优最差平均
冒泡排序bubble sort稳定O(1)O(n)O(n2)O(n2)
选择排序selection sort不稳定O(1)O(n2)O(n2)O(n2)
插入排序insertion sort稳定O(1)O(n)O(n2)O(n2)
归并排序merge sort稳定O(n)O(nlogn)O(nlogn)O(nlogn)
快速排序quick sort不稳定O(logn)O(nlogn)O(n2)O(nlogn)

小菜学算法】系列文章首发于公众号【小菜学编程】,敬请关注:

【小菜学算法】系列文章首发于公众号【小菜学编程】,敬请关注: