排序算法-常见

server/2024/10/11 7:25:59/

排序

冒泡排序

冒泡排序

  • 优缺点、复杂度
稳定,平均/最坏时间复杂度 O(n²),元素基本有序时最好时间复杂度 O(n),空间复杂度 O(1)
  • 步骤
    1. 从头开始,依次比较数组中相邻的2个元素,如果前面的数比后面的数大,则交换位置
    2. 每进行一轮比较,都会把数组中最大的元素放到最后面
    3. 针对 n 个元素重复以上步骤 n -1 次排序完毕

选择排序

选择排序

  • 优缺点、复杂度
不稳定,时间复杂度 O(n²),空间复杂度 O(1)
  • 步骤
    1. 将第一个值与全员比较,找到最小的那个值放在首位
    2. 排除第一个值,剩下的值重复步骤1,直到所有元素排序完毕

插入排序

插入排序

  • 优缺点、复杂度
稳定,平均/最差时间复杂度 O(n²),元素基本有序时最好时间复杂度 O(n),空间复杂度 O(1)
  • 步骤
    1. 将第一个元素作为有序数组
    2. 下一个元素从后遍历并插入到有序数组中,组成有序数组
    3. 重复步骤2,直到排序完毕

快速排序

在这里插入图片描述序

  • 优缺点、复杂度
不稳定,平均/最好时间复杂度 O(nlogn),元素基本有序时最坏时间复杂度O(n²),空间复杂度 O(logn)
  • 步骤
  1. 从数列中取出一个数作为基准数
  2. 分区:将比它大的数全放到它的右边,小于或等于它的数全放到它的左边
  3. 再对左右区间重复第二步,直到各区间只有一个数

堆排序

堆排序

  • 优缺点、复杂度
不稳定,时间复杂度 O(nlogn),空间复杂度 O(1)
  • 原理
    • 堆:近似完全二叉树的结构,堆中某个节点值总是不大于或者不小于其父节点的值
    • 根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆
  • 步骤
    1. 将排序元素组成大根堆或小根堆
    2. 取出根节点,将剩下元素再组成大根堆或小根堆
    3. 重复步骤2,直到元素为1

http://www.ppmy.cn/server/9090.html

相关文章

每日三个JAVA经典面试题(四十)

1.如何使用设计模式来提高数据库操作的性能? 设计模式可以在数据库操作中提高性能,尤其是在应用程序需要频繁访问数据库时。以下是一些设计模式和技术,可以帮助提高数据库操作的性能: 数据访问对象模式(DAO模式&#…

【BEVHeight论文阅读】自动驾驶车路协同车端感知算法

论文名称:BEVHeight: A Robust Framework for Vision-based Roadside 3D Object Detection 论文地址:https://arxiv.org/pdf/2303.08498.pdf 代码地址:https://github.com/ADLab-AutoDrive/BEVHeight 总结:这篇文章比较有意思的点…

解决Git 不相关的分支合并

可以直接调到解决方案,接下来是原因分析和每步的解决方式 问题原因: 我之前在自己本机创建了一个初始化了Git仓库,后来有在另一个电脑初始化仓库,并没有clone自己在本机Git远程仓库地址,导致Git历史版本不相关 错误信息 From https://gitee.com/to-uphold-justice-for-other…

极客智能直播机推出阿里国际站AI直播助手,让商家轻松开启全球直播带货!

导语:极客智能直播机近期推出了一款专门为阿里国际站商家直播赋能的AI直播助手,旨在帮助阿里巴巴国际站商家轻松开启全球直播带货,实现高效营销。本文将为您详细介绍这款产品的功能、优势以及如何轻松上手,最后邀请您参与讨论&…

《SQLite系列》SQLite数据库常用命令大全

SQLite是一个轻量级的数据库系统,广泛应用于嵌入式系统和移动应用中。由于其简洁、快速和高效的特点,SQLite成为了许多开发者的首选数据库。本文将详细介绍SQLite数据库的常用命令,帮助读者更好地掌握和使用SQLite。 一、SQLite命令行工具 …

【春季发布】LinkSLA智能运维V6.0发布 聚焦架构升级 新增带外管理

LinkSLA智能运维为企业IT部门提供覆盖资源管理、监控告警、IT服务台、日志管理、MOC值守服务等多项功能为一体的运维平台,通过打通各业务单元、贯穿各技术栈,以故障定位和全生命周期管理为核心,持续保障业务连续性。 本次V6.0版本全面升级&a…

MySQL学习笔记1(MySQL基础)

1.MySQL基础 1.数据库相关概念 ​ *数据库:存储数据的仓库,数据是有组织的进行存储 DtaBase(DB) ​ *数据管理系统:操纵和管理数据库的大型软件 DataBase Management System (DBMS) ​ *SQL:操作关系型数据库的编程语言&#…

linux irq:

csdn 文章编辑工具真垃圾: 1. 中断触发硬件/软件行为:Linux kernel的中断子系统之(六):ARM中断处理过程 2.中断控制器: 3.中断使用注册