十大排序算法基础篇汇总(C++函数模板,仅供参考)

本文汇总了十大排序算法,包括冒泡排序、选择排序、插入排序、希尔排序、快速排序、归并排序、堆排序、计数排序、桶排序和基数排序。详细介绍了每个算法的工作原理、时间复杂度、空间复杂度以及稳定性,并提供了相关优质文章链接供深入学习。
摘要由CSDN通过智能技术生成

文前声明

不用代码块的目的是希望各位读者或者将来的我看完后能再一次手动打出代码 而不是Ctrl C+Ctrl V

共勉 -_-

关于排序的稳定性解释:

  • 稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 仍然在 b 的前面,则为稳定排序。
  • 非稳定排序:如果 a 原本在 b 的前面,且 a == b,排序之后 a 可能不在 b 的前面,则为非稳定排序。

其他解释:

  • 原地排序:原地排序就是指在排序过程中不申请多余的存储空间,只利用原来存储待排数据的存储空间进行比较和交换的数据排序。
  • 非原地排序:需要利用额外的数组来辅助排序。

冒泡排序(Bubble Sort)

重复地遍历过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来,遍历数列的工作是重复地进行比较和交换直到没有再需要交换的情况或者到数组末尾
在这里插入图片描述

在这里插入图片描述

时间复杂度:O(n²)
空间复杂度:O(1)
稳定排序
原地排序

优质的文章讲解:冒泡排序

选择排序(Selection Sort)

在这里插入图片描述

先在未排序序列中找到最小(大)元素,存放到序列的起始位置,再从元素中继续寻找最小(大)元素放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
在这里插入图片描述

时间复杂度:O(n²)
空间复杂度:O(1)
非稳定排序
原地排序

优质的文章讲解:

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值