八大经典排序基本原理及应用场景分析

排序算法在面试过程中是面试官常常询问的知识点。掌握经典排序算法的基本原理以及其应用场景是十分必要的。(下面将分别进行说明)

算法分类介绍:

在这里插入图片描述

算法原理介绍:

关于排序算法基本原理的详细介绍在其他博文已更新,可通过以下链接进行访问。

1.冒泡排序
2.选择排序
3.直接插入排序
4.快速排序
5.堆排序
6.shell排序(希尔排序)
7.归并排序
8.基数排序

八大排序空间、效率分析:

在这里插入图片描述

应用场景分析:

  1. 如果n较小(n <= 50),可采用直接插入排序或者选择排序。
  2. 如果序列初始状态基本有序,则可以使用直接插入(越有序越快)、冒泡排序或者随机的快速排序。
  3. 如果n较大,则应该使用时间复杂度为O(nlog 2n)的排序算法,比如快速排序、堆排序或者是归并排序。
  4. 快速排序是目前内部排序中被公认为最好的方法,当待排序列的关键字是随机分布时,快速排序的平均时间最短。C++11泛型算法sort()函数的实现就是通过快速排序实现的。
  5. 堆排序所需要的辅助空间少于快速排序,并且堆排序不会出现快速排序中可能出现的最坏情况。快速排序和堆排序都不是不稳定的排序算法。
  6. 基数排序是一种稳定的排序算法,但其是通过单个记录进行两两归并的。因此在使用时通常不是单独的使用,而是将直接插入排序结合在一起使用。先使用直接插入排序获得较长的子文件,再通过归并排序两两归并。由于直接插入排序是有序的,因此改进后的归并排序仍然是有序的。
  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值