【leetcode】数组排序

【leetcode】数组排序

task03 主要了解了数组中常见的排序方法:

1.常见数组排序方法

  • 冒泡排序(Bubble Sort):

    冒泡排序是一种简单的排序算法,它多次遍历数组,比较相邻的元素并交换它们,直到整个数组按升序排列。时间复杂度为O(n^2)。

  • 选择排序(Selection Sort):

    选择排序是一种简单的排序算法,它在每次遍历中选择数组中的最小元素并将其放在已排序部分的末尾。时间复杂度为O(n^2)。

  • 插入排序(Insertion Sort):

    插入排序将数组分为已排序和未排序两部分,然后逐个将未排序元素插入已排序部分的正确位置。时间复杂度为O(n^2)。

  • 快速排序(Quick Sort):

    快速排序是一种分治算法,它选择一个基准元素,将数组分成小于基准和大于基准的两个子数组,然后递归地对子数组进行排序。平均情况下,时间复杂度为O(n log n)。

  • 归并排序(Merge Sort):

    归并排序也是一种分治算法,它将数组分成两个子数组,分别对子数组进行排序,然后将它们合并为一个有序数组。时间复杂度为O(n log n)。

  • 堆排序(Heap Sort):

    堆排序使用二叉堆数据结构来进行排序。它首先将数组构建成一个最大堆(或最小堆),然后逐步移除堆顶元素,将其放入已排序部分。时间复杂度为O(n log n)。

  • 计数排序(Counting Sort):

    计数排序适用于非负整数数组,它统计每个元素的出现次数,然后按顺序构建排序后的数组。时间复杂度为O(n + k),其中k是非负整数的范围。

  • 桶排序(Bucket Sort):

    桶排序将元素分散到若干个桶中,然后对每个桶内的元素进行排序,最后将桶中的元素按顺序合并。时间复杂度取决于桶的数量和每个桶内的排序算法。

2.练习题目

相关推荐
卷无止境3 小时前
RAGFlow 项目全景报告:从文档解析引擎到 Agent 原生数据库
后端·python
D e re k ZH4 小时前
C++ 系统学习手记:从语法细节到工程实践
开发语言·数据结构·c++·算法
灿飞屋5 小时前
Kotlin与Java虚拟机三:控制流
android·java·开发语言·后端·python·kotlin·安卓
benchmark_cc5 小时前
单只股票五档盘口接入个人研究仓库:QuantDash 读取、校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash
石小石Orz5 小时前
AI 正在蚕食我们的编码能力
前端·后端·算法
民乐团扒谱机6 小时前
【微实验】NSGA-II(非支配排序遗传算法)——解决多目标优化问题的“自然选择模拟器”
linux·人工智能·算法
青少儿编程课堂6 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:中缀表达式求值解析
c++·python·算法·bfs·信息学竞赛
文丑颜不良啊7 小时前
LeetCode2261~2280题目解析
java·leetcode
灿飞屋8 小时前
Kotlin与Java虚拟机四:函数
java·python·kotlin·安卓·android jetpack