数据结构---排序总结

ops/2024/11/15 3:53:17/

1.排序的时间复杂度(均为平均值)

O(n^2) :冒泡排序,选择排序,插入排序。
O(n * log(n)):堆排序,快速排序,归并排序。
O(n^1.3):希尔排序

2.空间复杂度:

O(n) 归并排序
O(log(n)) ~ O(n):快速排序
O(1) :冒泡排序,选择排序,插入排序, 堆排序, 希尔排序

3.使用思想分类

1.插入:直接插入排序,希尔排序

2.分治:快速排序,归并排序

3. 选择:选择排序,冒泡排序,堆排序

4.稳定性分类

1.稳定:归并排序,冒泡排序,插入排序 

2.不稳定:希尔排序,选择排序,快速排序,堆排序

5.适用场合

归并排序:要求稳定又相对较快

冒泡排序:简单

插入排序 希尔排序:本身就是相对有序的数组

选择排序:很少用

快速排序:快

堆排序:优于选择,较快

附具体时间复杂度:


http://www.ppmy.cn/ops/132884.html

相关文章

gitlab ci/cd搭建及使用笔记

记录下使用gitlab的ci/cd的devops构建过程中,一些易忘点或者踩坑点: 官方文档中英文(建议英文) https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html https://gitlab.cn/docs/jh/ci/pipelines/schedules.html为什么创建了…

Spring Boot实战:SSO和OAuth2.0

SSO和OAuth2.0 SSO(单点登录)和OAuth 2.0 是两个在认证和授权场景中常用的技术概念。它们的应用场景、目标和工作机制不同,但在一些方面也有联系。以下是它们的区别和联系的详细分析。 一、SSO(Single Sign-On) 1.1…

【vue2.0入门】初始化vue工程

目录 引言一、前期准备1. 熟悉如何调起控制台1.1 全局打开控制台1.2 指定目录打开控制台1.3 推荐使用vscode集成控制台 2. 设置npm镜像3. 安装vue脚手架工具 二、创建vue工程1. 利用vue-cli创建工程2. 启动项目3. 打包项目 三、总结 引言 本系列教程旨在帮助一些零基础的玩家快…

pdf添加目录标签python(手动配置)

先安装对应的库: pip install pypdf 代码分为两个部分,一部分是config.py,代码如下: offset=10 catgorys=[("第一章",12),("第二章",45), ] 需要自己手动更改offset,和目录列表 下面是主要代码: import pypdf # import sys from config import…

linux命令详解,存储管理相关

存储管理 一、内存使用量,free free 命令是一个用于显示系统中物理内存(RAM)和交换空间(swap)使用情况的工具 free -m free -m -s 5参数 -b 功能: 以字节(bytes)为单位显示内存使用情况。说…

软件工程 软考

开发大型软件系统适用螺旋模型或者RUP模型 螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的管理信息系统的开发。喷泉模型是一种以用户需求为动力,以对象为为驱动的模型,主要用于描述面向对象的软件开发过程。该模型的各个阶段没有…

MFC中Excel的导入以及使用步骤

参考地址 在需要对EXCEL表进行操作的类中添加以下头文件:若出现大量错误将其放入stdafx.h中 #include "resource.h" // 主符号 #include "CWorkbook.h" //单个工作簿 #include "CRange.h" //区域类,对Excel大…

讨论一个mysql事务问题

最近在阅读一篇关于隔离级别的文章,文章中提到了一种场景,我们下面来分析一下。 文章目录 1、实验环境2、两个实验的语句执行顺序3、关于start transaction和start transaction with consistent snapshot4、实验结果解释4.1、实验14.2、实验24.3、调整实…