算法笔记--八个常见排序算法总结

简介: 一、 分类描述 1. 插入排序           直接插入排序:算法简单,稳定,适用于数据量小的情况          希尔排序:直接插入排序的改进版,不稳定,对于待排序序列的不同情况效率相近 2.


一、 分类描述

1. 插入排序

          直接插入排序:算法简单,稳定,适用于数据量小的情况

         希尔排序:直接插入排序的改进版,不稳定,对于待排序序列的不同情况效率相近

2. 交换排序

          冒泡排序:算法简单,稳定,在数据基本有序的情况下效率较高

         快速排序:算法效率高,不稳定,需要额外的辅助空间

3. 选择排序

         直接选择排序:任何情况时间复杂度均为O(n^2),不稳定,其优势在于交换次数少

         堆排序:不稳定,对序列的原始顺序不敏感,适用于数据量大的情况

4. 归并排序

          分治策略,稳定,适用于待排序列整体无序、部分有序的情况,需要额外的辅助空间

5. 基数排序

          稳定;适用范围有限;当数据位数较小时,时间复杂度近似为O(n),效率高于其它的稳定性排序算法

二、总结比较表

类别

排序方法

时间复杂度

空间复杂度

稳定性

复杂性

最好

最坏

平均

插入排序

直接插入

O(n)

O(n^2)

O(n^2)

O(1)

O

简单

希尔排序

O(n^1.3)

O(n^2)

O(n^1.x)

O(1)

X

较复杂

交换排序

冒泡排序

O(n)

O(n^2)

O(n^2)

O(1)

O

简单

快速排序

O(nlogn)

O(n^2)

O(nlogn)

O(logn)

X

较复杂

选择排序

直接选择

O(n^2)

O(n^2)

O(n^2)

O(1)

X

简单

堆排序

O(nlogn)

O(nlogn)

O(nlogn)

O(1)

X

较复杂

 

归并排序

O(nlogn)

O(nlogn)

O(nlogn)

O(n)

O

较复杂

 

基数排序

O(d(n+r))

O(d(n+r))

O(d(n+r))

O(n+r)

O

较复杂


目录
相关文章
|
10天前
|
算法
【❤️算法笔记❤️】-每日一刷-19、删除链表的倒数第 N个结点
【❤️算法笔记❤️】-每日一刷-19、删除链表的倒数第 N个结点
39 1
|
10天前
|
算法 索引
❤️算法笔记❤️-(每日一刷-141、环形链表)
❤️算法笔记❤️-(每日一刷-141、环形链表)
23 0
|
10天前
|
算法
【❤️算法笔记❤️】-(每日一刷-876、单链表的中点)
【❤️算法笔记❤️】-(每日一刷-876、单链表的中点)
32 0
|
10天前
|
算法
【❤️算法笔记❤️】-每日一刷-23、合并 K 个升序链表
【❤️算法笔记❤️】-每日一刷-23、合并 K 个升序链表
25 0
|
9天前
|
算法 API 计算机视觉
人脸识别笔记(一):通过yuface调包(参数量54K更快更小更准的算法) 来实现人脸识别
本文介绍了YuNet系列人脸检测算法的优化和使用,包括YuNet-s和YuNet-n,以及通过yuface库和onnx在不同场景下实现人脸检测的方法。
20 1
|
9天前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
18 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
10天前
|
算法
❤️算法笔记❤️-(每日一刷-160、相交链表)
❤️算法笔记❤️-(每日一刷-160、相交链表)
12 1
|
9天前
|
数据可视化 搜索推荐 Python
Leecode 刷题笔记之可视化六大排序算法:冒泡、快速、归并、插入、选择、桶排序
这篇文章是关于LeetCode刷题笔记,主要介绍了六大排序算法(冒泡、快速、归并、插入、选择、桶排序)的Python实现及其可视化过程。
8 0
|
10天前
|
算法
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
24 0
|
10天前
|
算法
❤️算法笔记❤️-(每日一刷-26、删除有序数组的重复项)
❤️算法笔记❤️-(每日一刷-26、删除有序数组的重复项)
19 0