
数据结构——排序
文章平均质量分 82
是Nero哦
正在努力提升自己,若能得各位之建议、批评、抑或是关注,不胜感激
展开
-
数据结构排序——计数排序和排序总结(附上912. 排序数组讲解)
排序算法时间复杂度空间复杂度稳定性直接插入排序O(N^2)O(1)稳定希尔排序O(N^1.3)O(logN)不稳定选择排序O(N^2)O(N)不稳定堆排序O(N*logN)O(N)不稳定冒泡排序O(N^2)O(1)稳定快速排序O(N*logN)O(logN)不稳定归并排序O(N*logN)O(N)稳定希尔:根据gap分组不在一个组选择:3 3 1 1…堆排序:向下调整过程快排:相同的数字其中一个在keyi的位置。原创 2024-01-14 12:10:56 · 1201 阅读 · 12 评论 -
数据结构排序——详细讲解归并排序(c语言实现递归及非递归)
上次是快排和冒泡:今天为大家带来归并排序。原创 2024-01-13 10:01:02 · 965 阅读 · 22 评论 -
数据结构排序——详解快排及其优化和冒泡排序(c语言实现、附有图片与动图示意)
上次讲了选择排序和堆排序:数据结构排序——选择排序与堆排序今天就来快排和冒泡1.2.3 前后指针版1.3快排的优化1.3.1三数取中选key代码在Hoare版已经展示过了1.3.2递归到小的子区间时,可以考虑使用插入排序1.3.3大量重复数据采用三路划分基本步骤:1.4快排非递归2.冒泡排序好啦,这次内容就到这里啦,下次带来归并排序,感谢大家支持!!!原创 2024-01-11 09:25:00 · 1616 阅读 · 64 评论 -
数据结构排序——选择排序与堆排序(c语言实现)
选择排序(Selection Sort):是一种简单直观的排序算法.它的基本思想是在未排序序列中找到最小(大)的元素,放到序列的起始位置,然后再从剩余未排序元素中找到最小(大)的元素,放到已排序序列的末尾。重复这个过程,直到所有元素都排好序。之前在堆应用这篇文章我已经讲过了堆排序和TOP-K问题,详细可见:()[]那这次就再次大致讲解一下如果是升序,就建立大堆;是降序就建立小堆。因为思路是(以升序为例):大堆的堆顶一定是最大的,我们就把堆顶与堆尾交换后,除去最后一个对新堆顶进行向下调整。完成后原创 2024-01-09 13:52:17 · 1243 阅读 · 58 评论 -
数据结构排序(一.基本概念、插入排序和希尔排序实现)
今天也要迈向全新的篇章了——排序。这次就先大概讲解一下排序,然后插入排序和希尔排序的介绍和实现:1.排序的概念和运用1.1概念1.2运用2.常见排序一览3.直接插入排序3.1基本思想3.2具体实现3.3过程示图4.希尔排序4.1思想、过程和性质4.2代码实现原创 2024-01-07 17:20:08 · 1591 阅读 · 7 评论 -
堆的应用:堆排序和TOP-K问题
上次才讲完堆的相关问题,那今天就接着来进行堆的主要两方面的应用:堆排序和TOP-K问题1.堆排序1.1概念、思路及代码1.2改良代码 (最初建立大堆用AdiustDow)2.TOP-K问题原创 2024-01-01 22:56:32 · 1220 阅读 · 37 评论 -
冒泡排序:从小到大轻松搞定数组排序(c语言代码)
然而,它作为最基础的排序算法,对于我们初学者来说是一个很好的入门算法,能够帮助理解排序算法的基本思想和过程。其中,冒泡排序是最简单的一种排序算法之一,它通过比较相邻元素并交换位置,逐步将最大的元素“冒泡”到数组的末尾。冒泡排序的原理很简单:每次比较相邻的两个元素,如果顺序错误就交换它们的位置,直到整个数组排序完成。在函数内部,使用两个嵌套的循环来进行比较和交换,最终实现冒泡排序的功能。该图片展示一次遍历的过程和详细解释,通过多次遍历,直到所有元素都按照从小到大的顺序排列,冒泡排序就完成了!原创 2023-07-25 17:44:07 · 3052 阅读 · 15 评论