排序算法

万法若空44 分钟前
数据结构·算法·排序算法
CSP-J/S 排序算法完整专题训练题单本练习共18题,覆盖CSP-J/S中排序算法的全部核心题型。每道题均附有答案与详细解析,方便教师讲解或学生自查。
凉茶钱44 分钟前
数据结构·算法·排序算法
【数据结构】排序(快排,选择,直接插入,希尔)目录一.快速排序1).快排的介绍3).lomuto前后指针法4).非递归快排二.选择排序快速排序是基于分治思想的经典交换排序算法,它选定一个元素作为基准值,通过双指针遍历将数组划分为两部分,使基准左侧元素全部小于等于它、右侧元素全部大于等于它,再递归对划分得到的左右子区间重复上述操作,不断缩小待排序范围,最终得到整体有序的数组,平均时间复杂度为 O (nlogn),最坏情况下可达 O (n²),属于不稳定排序。
晚风醉蝶4 小时前
python·算法·排序算法
1-16-计数排序-CountingSort摘要:本文从"比较排序的时间下界是 Ω(n log n)"的理论限制出发,详解计数排序如何通过"统计次数而非比较大小"突破这一下界,实现 O(n + k) 的线性时间复杂度。给出了支持升序/降序的 Python 完整实现(标准稳定版、原地版、基数排序专用版),图解了四步核心流程与前缀和的含义,分析了其稳定性保证与空间权衡。最后结合基数排序、桶排序的工程场景讨论其设计哲学与面试高频考点。
疯狂打码的少年4 小时前
数据结构·笔记·算法·排序算法
【数据结构】排序算法:归并排序与基数排序考点频率:★★★★☆(选择题常考,归并排序的复杂度与稳定性是重点,基数排序常考其适用场景) 难度:⭐⭐⭐⭐(归并排序需理解分治与合并,基数排序需理解分配与收集过程) 建议:重点掌握归并排序的“分治+合并”思想及时间复杂度;重点掌握基数排序的LSD过程及适用场景
小七在进步6 小时前
数据结构·算法·排序算法
数据结构:选择排序上一篇我们讲了插入排序,这一篇我们来讲选择排序。因为堆排序之前我们有详细讲过,所以这里只给出堆排序的思路,有兴趣的可以看一看。# 选择排序 选择排序就是从数组中选出最小值和最大值,最小值放在第一个位置,最大值放在最后一个位置,依次执行,直到排成有序数组为止。
疯狂打码的少年1 天前
数据结构·笔记·算法·排序算法
【数据结构】交换类排序:冒泡与快速排序考点频率:★★★★★(数据结构必考,选择题常考冒泡的优化判断与快速排序的一趟划分结果) 难度:⭐⭐⭐⭐(冒泡简单,快速排序需要重点理解分治与划分过程) 建议:重点掌握冒泡排序的优化(提前结束)及其时间复杂度,重点掌握快速排序的一趟划分过程(选基准、交替填充),熟记两种排序的适用场景
小雪崩2 天前
linux·c语言·数据结构·学习·排序算法
嵌入式学习 day25:哈希表及排序与查找哈希表是一种根据键(Key) 直接访问数据的数据结构。它通过哈希函数把键映射到一个下标,然后直接在该位置存取数据。
thefool1122663 天前
排序算法
快速排序(递归和非递归)选择最后一个数组元素作为 基准值排序将基准值的左区间都放 小于基准值的元素;基准值右区间都放 大于基准值的元素
我变成萤火虫3 天前
c++·算法·贪心算法·stl·排序算法·反悔贪心
反悔贪心(经典题目讲解)常规贪心思维题目可以看这篇博客:贪心算法入门详解_贪心算法巡回-CSDN博客场景:数轴上有 n 只老鼠和 m 个洞,每个洞有容量(最多能进几只老鼠)。
_Narcissus_3 天前
c语言·数据结构·c++·笔记·算法·排序算法·总结
排序算法总结表格排序算法排序性质示意图特殊思想就地性,稳定性时间复杂度定义直接插入排序基于插入无就地可稳定O(n^2)
我变成萤火虫5 天前
数据结构·c++·算法·贪心算法·stl·排序算法·动态规划
2026 ICPC沈阳邀请赛Vp补题赛时在签到题上浪费了太多时间,没机会看更难的题,一些中档难度的题涉及的知识其实也有学过,也是非常可惜,所以这篇博客准备补一下题,并且反思一下
xx~t5 天前
数据结构·学习·算法·排序算法
嵌入式学习22今日学习:冒泡排序、选择排序、插入排序、希尔排序、快速排序,顺序查找、二分查找。 🔍文章大纲原理:相邻元素两两比较,大的往后交换,每轮把最大值“冒泡”到数组尾部;增加交换标记做优化,提前结束有序数组。
晚风醉蝶7 天前
java·数据结构·排序算法
1-6-插入排序-InsertionSort摘要:堆排序和归并排序保证了最坏 O(n log n),但引入了缓存不友好或 O(n) 空间的代价。插入排序反其道而行——O(n²) 的平均复杂度看似落后,但在小规模数据(n < 20)和近乎有序数据上却是实际最快的排序算法。本文从扑克牌整理出发,图解插入排序的逐步插入过程,给出支持升序/降序的 Python 完整实现,对比其与冒泡排序的本质差异,并分析 TimSort、IntroSort 等工业级排序为何将其作为小区间回退方案。
Brilliantwxx8 天前
数据结构·算法·排序算法
【算法从零到千】【51-54】逆序对(分治+递归算法)912. 排序数组 https://leetcode.cn/problems/sort-an-array/
逆境不可逃9 天前
数据结构·算法·排序算法
【LeetCode 912】排序数组——随机化快速排序详解作者:逆境不可逃技术永无止境希望我的内容可以帮助到你!!!!LeetCode 912「排序数组」要求我们在不调用内置排序函数的情况下,将整数数组按升序排列。数组长度最多为 5 × 10⁴,并且可能包含大量重复元素,因此需要选择效率较高的排序算法。
c238569 天前
数据结构·算法·排序算法
《算法武林谱:四大排序神功与二分寻宝术全解》下面为每类算法赋予贴合原理的趣味名称,同时从核心思想、执行步骤、复杂度、C++ 实现代码、算法特点五个维度做详细讲解,全部代码可直接编译运行。
杨航 AI10 天前
算法·排序算法
O(n log n):线性对数原理拆解 这个是排序算法的黄金复杂度之一。log n 是"将数据分半处理的次数"。举例:O(n log n) = 每层处理 n 个数据 × 一共 log n 层
linux-hzh10 天前
数据结构·算法·排序算法
百日算法修炼 · Day 09主题:基础排序、二分查找、局部最小、异或运算 语言:Java | 建议用时:120~150 分钟本文仍然分为两个区域:
lsylalalala11 天前
数据结构·算法·排序算法
常见的排序算法1排序:把无序的序列,变成有序(递增/升序,递减/降序)排序的时候,指定升序/降序,最关键的就是指定“比较规则”
SunnyByte12 天前
c语言·数据结构·算法·排序算法
排序进阶:快速排序与归并排序的迭代实现,并与递归版本对比前面学习排序算法时,我们已经接触过直接插入排序、希尔排序、选择排序、冒泡排序和归并排序。随着排序方法逐渐增多,可以发现:不同排序算法之间真正拉开差距的,不只是代码写法,还有它们处理问题的思路。