排序算法(1):主流排序算法概述

本文深入探讨了排序算法的分类、性能分析及稳定性特点,包括插入排序、交换排序、选择排序、归并排序和分布排序,同时指出了各类算法的平均时间复杂度,并对比了它们之间的优劣。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     在学习算法的时候,最先接触的就是排序算法。排序算法是一种将无序的数组按照大小顺序排列起来的一种算法。一个好的算法效率可以比基本算法高很多。本文主要讨论了交换排序,选择排序,插入排序,归并排序,分布排序这五大类。下面给出一个表格,列举了一些常用的排序算法:

分类

排序算法

插入排序

直接插入排序,希尔排序,二叉树排序

交换排序

冒泡排序,鸡尾酒排序,奇偶排序,快速排序

选择排序

选择排序,堆排序

归并排序

归并排序

分布排序

基数排序,计数排序,插值排序


    排序算法就稳定性而言,分为稳定和不稳定,主要的依据为是否会改变等值的顺序,当数组中存在相等值的时候,稳定算法不会改变它的顺序,不稳定算法可能会改变相等值得顺序。冒泡排序,鸡尾酒排序,奇偶排序,直接插入排序,计算排序,基数排序,归并排序和二叉树排序都是稳定排序,快速排序,希尔排序,选择排序,堆排序都是不稳定排序。

   常见排序的平均时间复杂度由高到低为:

  • 冒泡排序 O(n2)
  • 插入排序 O(n2)
  • 选择排序 O(n2)
  • 归并排序 O(n log n)
  • 堆排序 O(n log n)
  • 快速排序 O(n log n)
  • 希尔排序 O(n1.25)
  • 基数排序 O(n)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值